@yaaif/platform-mcp
Provides integration with IntelliJ IDEA, enabling the YAAIF plugin and MCP bridge to work within the IntelliJ IDEA IDE.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@yaaif/platform-mcpinstall the YAAIF plugin for Cursor and sign me in"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@yaaif/platform-mcp
Stdio MCP bridge and Node installer for the YAAIF Cursor, VS Code, IntelliJ IDEA, Claude Code, Codex, and OpenCode plugins.
Plugin contract 1.4.0. This package 1.3.5. Each IDE keeps its own login state and OIDC client.
--install writes the platform profile and (for Cursor) copies plugin files. It does not register the plugin in the IDE. Finish in Cursor / Claude / Codex after the CLI exits.
IDE | Plugin repo | Marketplace | Plugin ID | State directory | OIDC client |
Cursor |
|
|
|
| |
Claude Code |
|
|
|
| |
Codex |
|
|
|
|
Dependencies
Install these on the same OS as the IDE (do not mix WSL Node with Windows Cursor).
Dependency | Requirement | Who |
Node.js | ≥ 20 ( | All |
npm package |
| All |
Git | Clone Cursor plugin; Claude/Codex marketplace add clones GitHub | Cursor always; Claude/Codex marketplace |
Browser | OIDC PKCE sign-in | All |
Cursor Desktop | Plugins + MCP | Cursor |
Claude Code | Desktop and/or | Claude |
Codex | App/CLI with local marketplaces | Codex |
YAAIF user | Platform | All |
Network | npm, GitHub, and the YAAIF host | All |
Operator (once per environment): enable public Keycloak clients yaaif-cursor, yaaif-claude, and yaaif-codex (PKCE, no client secret).
Not required: Go/Python/Docker, native .pkg / .msi / .deb installers, S2S secrets, desktop connection keys, or AI-gateway keys.
Run npx from your home directory, not from a checkout of this repo (that path fails with yaaif-platform-mcp: command not found).
cd ~Related MCP server: mcacp
Shared installer
The CLI asks you to choose hosted https://platform.yaaif.ai or another YAAIF URL.
npx -y @yaaif/platform-mcp@1.3.5 --install --client cursor|vscode|intellij|claude|codex|opencodeNon-interactive:
npx -y @yaaif/platform-mcp@1.3.5 --install --client claude --yaaif-url https://your.yaaif.host
npx -y @yaaif/platform-mcp@1.3.5 --install --client cursor --profile hosted --plugin-src ./cursor-plugin--no-login skips the browser. --offline pins absolute node + cli.js for Claude/Codex (Cursor always uses absolute node + cli.js). --force overwrites a newer Cursor dest. --cli-path is required if the running CLI lives under an npx cache.
Air-gap
On a machine with npm: npm pack @yaaif/platform-mcp@1.3.5. Copy the .tgz plus the plugin clone.
npm install -g ./yaaif-platform-mcp-1.3.5.tgz
yaaif-platform-mcp --install --client cursor|claude|codex --plugin-src <dir> --offlineCursor — end to end
Install profile and copy plugin files
cd ~ git clone https://github.com/yaaif/cursor-plugin.git npx -y @yaaif/platform-mcp@1.3.5 --install --client cursor --plugin-src ./cursor-pluginChoose hosted or your YAAIF URL and complete browser login.
Dest:
~/.cursor/plugins/local/yaaif(Windows:%USERPROFILE%\.cursor\plugins\local\yaaif).Register in Cursor (required)
Cursor → Plugins → + Add → Add local plugin → that path → Developer: Reload Window.Verify
/yaaif-loginthen/yaaif-doctoruntilready: true.
Marketplace alternative (when published): install yaaif from Cursor Marketplace, configure plugin variables if needed, reload, then /yaaif-login and /yaaif-doctor.
Claude Code — end to end
Sign in (does not add the plugin)
cd ~ npx -y @yaaif/platform-mcp@1.3.5 --install --client claudeAdd marketplace and install plugin (required)
claude plugin marketplace add yaaif/claude-plugin claude plugin install yaaif-platform@yaaifOr Customize → Plugins → Add → GitHub
yaaif/claude-plugin→ installyaaif-platform. Do not search foryaaif/yaaif-platform.Local only:
claude plugin marketplace add /path/to/claude-pluginorclaude --plugin-dir /path/to/claude-plugin.New session
Quit Claude Code, open a new session, optionally/plugin configure yaaif-platform@yaaif, then/yaaif-platform:yaaif-loginand/yaaif-platform:yaaif-doctor.
MCP start command: npx -y @yaaif/platform-mcp@1.3.5 --client claude.
Codex — end to end
Sign in (does not add the plugin)
cd ~ npx -y @yaaif/platform-mcp@1.3.5 --install --client codexAdd marketplace and install plugin (required)
git clone https://github.com/yaaif/codex-plugin.gitIn Codex, add the clone as a local marketplace named
yaaif, install YAAIF (yaaif-platform), then start a new task.Verify
$yaaif-loginthen$yaaif-doctor. Codex has nouserConfigand nocommands/; short names are alias skills.
MCP start command: npx -y @yaaif/platform-mcp@1.3.5 --client codex.
Profiles
Profile | When |
Hosted |
|
Custom URL | Customer host, e.g. |
| All APIs on |
| OIDC on |
Optional YAAIF_EXTRA_CA_FILE for a local/corporate CA. Tokens stay in ~/.yaaif/<ide>/session.json (0600). Do not commit that directory.
Local development
npm install
npm test
npm run build
node dist/cli.js --client cursor--setup detect|profile|login|whoami|all remains available after install.
License
Apache-2.0
Available Tools
203 toolsyaaif_agent_createC
Create a chat or workflow agent definition.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| enabled | No | ||
| spec_id | No | ||
| slot_key | No | ||
| skill_ids | No | ||
| agent_type | No | ||
| description | Yes | ||
| goal_prompt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Create', implying mutation, but does not explain side effects, required permissions, validation behavior, or the distinction between chat agents and workflow agents. This is a significant gap for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is concise and front-loaded, but the brevity is not appropriate for a tool with 8 parameters and no other structured documentation. It is a minimum-viable statement but lacks the substance expected given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, 0% schema coverage, no annotations, and no output schema, this description is severely incomplete. It does not explain required inputs, behavioral effects, return values, or how chat and workflow definitions differ. An agent would have no way to construct a valid call without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description gives zero parameter guidance. It vaguely hints at a chat vs workflow distinction (possibly 'agent_type') but does not explain any of the 8 parameters, including required fields like name, description, or goal_prompt. The agent must open the schema to understand what to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a chat or workflow agent definition'). It distinguishes itself from list/get/update siblings through the 'definition' framing, though it does not explicitly clarify how this differs from ambient_agent_create. The verb-resource pair is specific enough for basic selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like yaaif_agent_update or yaaif_ambient_agent_create. The description does not mention prerequisites, suitability conditions, or any exclusions, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_getB
Get one agent definition by id (includes skill_ids).
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It only states the action and one feature (includes skill_ids), but does not disclose anything about error behavior, authentication, read-only nature, or response format. For a get operation, this is thin and leaves the agent to guess what exactly is returned or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the purpose. There is no filler or redundancy, making it optimally concise for its content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the large number of sibling tools, the description is too sparse. It does not clarify the exact structure of the returned agent definition, nor does it delineate this from similar tools like yaaif_agent_spec_get or yaaif_ambient_agent_get. An agent would need more context to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter agent_id is left completely unexplained. Schema description coverage is 0%, so the description must compensate, but it merely says 'by id' without clarifying what the ID is, how to obtain it, or its expected format. This provides no added meaning beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get), the resource (agent definition), and the identifier (by id). It also adds a distinguishing detail (includes skill_ids) that separates it from list-like siblings such as yaaif_agent_list. This is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (to fetch a single agent by ID), but it does not explicitly mention alternatives or when not to use it. Since it is clear from the context that this is the retrieval tool versus creation or update tools, it meets the 'clear context, no exclusions' bar, but lacks explicit routing compared to tools that name sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_listC
List agent definitions in the tenant (chat and workflow).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| agent_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only list operation and gives scope, but it does not mention pagination, defaults, result size, ordering, or any operational constraints. This is thin for a tool with three optional filtering parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler and includes a useful scope qualifier. It is concise, though the terseness contributes to the lack of parameter and usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three undocumented optional parameters and no output schema or annotations, the description is incomplete. An agent cannot determine what q does, how limit behaves, what agent_type values are accepted, or what the response looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no meaning for q, limit, or agent_type. The parenthetical '(chat and workflow)' might relate to agent_type, but it does not explain the parameter. The description adds essentially nothing beyond the raw parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('agent definitions') with a clear tenant scope and the included types ('chat and workflow'). It is clear enough to distinguish from get/create/update agent tools, though it does not explicitly name or contrast sibling list tools such as yaaif_agent_spec_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to prefer this tool over alternatives like yaaif_agent_get, yaaif_ambient_agent_list, or yaaif_agent_spec_list. The description only states what the tool does, not when to use it or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_activation_overrideD
Exceptional activation only. Requires the dedicated permission and a durable reason recorded in the Scenario audit log.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| idempotency_key | No | ||
| override_reason | Yes | ||
| expected_version | Yes | ||
| override_approver | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description must carry behavioral disclosure, but it only mentions permission and audit logging. It fails to state what the operation does or its side effects (e.g., changing activation state, idempotency, failure modes). The described constraints are useful but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and readable, with no fluff, but it is under-specified rather than concise. The first sentence is a fragment, and the second lists requirements without grounding them in the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations, no output schema, and a terse description, the agent lacks enough context to call it correctly. The description omits the core action, parameter semantics, expected return, and any error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description names none of the five parameters. It adds no meaning to spec_id, expected_version, override_reason, idempotency_key, or override_approver. The agent still has to guess what each field is for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is a fragment ('Exceptional activation only') that never states the verb or resource; it neither says 'Override activation' nor identifies what is being activated. It is close to a tautology of the name and does not distinguish from siblings like yaaif_agent_spec_adopt or yaaif_agent_spec_publish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It implies exceptional use and permission needs but never names an alternative or a condition that should redirect to another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_adoptA
Apply a previously reviewed adoption preview. Existing authored Scenario prose is preserved and a baseline revision is published.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden. It does disclose two important effects: existing authored Scenario prose is preserved and a baseline revision is published. However, it does not explain version-mismatch behavior, irreversibility, or side effects beyond publishing, leaving some uncertainty for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences carry the core action, prerequisite, and key behavioral guarantee with no filler. The description is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description omits the meaning and source of expected_version, the relationship to yaaif_agent_spec_adoption_preview results, and what the agent should expect in return. This leaves a meaningful gap for a tool with only two required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter. spec_id is inferable from the name, but expected_version's role as a concurrency/version guard is not described, so the agent lacks the semantic detail needed to pass it correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Apply') and resource ('previously reviewed adoption preview'), and clarifies the outcome ('baseline revision is published'). This distinguishes yaaif_agent_spec_adopt from the sibling yaaif_agent_spec_adoption_preview, which generates rather than applies the preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Previously reviewed' is an explicit precondition, so the agent knows the tool should only be invoked after a preview has been reviewed. It does not explicitly name alternatives or say when not to use the tool, but the workflow 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.
yaaif_agent_spec_adoption_previewC
Preview the selected existing bindings, their current live baseline, and authored fields preserved by adoption.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It says 'Preview', implying read-only, but it doesn't explicitly state that no changes are made, nor does it describe what the preview returns or any side effects. The behavior is only implied, not disclosed. For a preview tool, stating that it is non-mutating and describing the output format would be essential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that is front-loaded with the action 'Preview'. Every word contributes to the purpose without redundancy. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and the minimal description, this is incomplete. Key terms like 'bindings', 'live baseline', and 'authored fields' are undefined, and the return value of the preview is not described. An agent would struggle to know what to expect or how to interpret the result. The description is too brief for a tool with this level of complexity and sibling ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter, spec_id, with no description (0% schema coverage). The tool description does not explain what spec_id refers to beyond the name, leaving the agent to guess that it identifies an agent spec. Since the schema does not help and the description lacks detail, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Preview' and the resources: 'selected existing bindings', 'current live baseline', and 'authored fields preserved by adoption'. It indicates a preview operation related to adoption, distinguishing it from generic previews like yaaif_agent_spec_sync_preview by mentioning adoption specifically. However, it doesn't explicitly differentiate from other preview tools in the sibling list, so it's clear but not maximally distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The sibling list includes many related tools like yaaif_agent_spec_adopt, yaaif_agent_spec_sync_preview, and other previews, but the description gives no indication of the appropriate context or prerequisites. An agent would have to infer usage from the name and the adoption-related phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_bindC
Bind a live catalog entity to a Scenario architecture slot. Default source is agent_spec (created/maintained from this scenario).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| source | No | ||
| spec_id | Yes | ||
| slot_key | Yes | ||
| entity_id | Yes | ||
| plan_slug | No | ||
| entity_name | No | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It reveals the default source but fails to disclose whether this is a write operation, what happens on conflict, prerequisites (e.g., existence of entity/slot), or any side effects. Major behavioral ambiguities remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with no filler words. However, it is so brief that it omits critical information. It earns a middle score for being non-verbose, but the content is inadequate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, 4 required, no annotations, no output schema), the description is grossly incomplete. It does not explain required parameters, expected_version semantics, slot_key meaning, entity_id usage, or any operational details. The agent cannot safely invoke this tool based on the provided description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 8 parameters (spec_id, expected_version, slot_key, entity_id, kind, source, plan_slug, entity_name). It merely mentions 'default source' without elaborating the source parameter or any other. The description must compensate for the lack of schema documentation and fails entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Bind') and the objects involved ('live catalog entity' to 'Scenario architecture slot'), which is clear and not a tautology. It also mentions a default source, adding some specificity. However, it does not explicitly distinguish it from sibling tools like yaaif_agent_spec_upsert_slots, so it misses a differentiation point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as yaaif_agent_spec_upsert_slots or sync tools. The only contextual note is the default source, but it does not explain conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_conflict_resolveB
Resolve one conflict: accept_object copies the live field into the Scenario, keep_spec retains the Scenario value, and merge sets merged_value.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| resolution | Yes | ||
| conflict_id | Yes | ||
| merged_value | No | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It explains the effect of each resolution mode, which is useful, but it does not mention side effects, reversibility, permission requirements, or how expected_version guards against stale updates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler, and the core purpose is front-loaded. It is appropriately concise, though the brevity contributes to missing semantic detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with five parameters, no output schema, and no annotations, the description is incomplete. An agent cannot determine how to source conflict_id, what expected_version represents, whether merged_value is mandatory for merge, or what a successful resolution returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It partially explains the resolution enum and hints that merge uses merged_value, but it leaves spec_id, conflict_id, expected_version, and the conditions under which merged_value is required undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Resolve one conflict') and enumerates the three resolution modes with their distinct effects. It is specific enough to distinguish this tool from siblings like yaaif_agent_spec_conflicts, though it could more explicitly tie it to agent spec conflicts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a conflict exists and offers resolution options, but it does not state when to prefer this tool over alternatives, how to obtain conflict_id, or any prerequisites like listing conflicts first. No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_conflictsA
List unresolved field-level Scenario/catalog conflicts, including severity and the two competing values.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'List' implies a read-only operation, and the described output fields add context. But it does not explicitly state whether the call has side effects, how results are ordered, or what happens when there are no conflicts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word adds meaning: the action, the resource, the scope, and the expected output fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool, this is reasonably complete: it describes what is listed and what the results contain. It lacks an explicit explanation of spec_id and any note about empty results, but the core calling context is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, spec_id, has zero schema description coverage and the description never mentions it or explains what it refers to. An agent must infer from the tool name alone, so the description provides no semantic value for the required argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), a precise resource ('unresolved field-level Scenario/catalog conflicts'), and the distinguishing output ('severity and the two competing values'). This clearly separates it from siblings like yaaif_agent_spec_conflict_resolve and other agent-spec tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is clear: call this when you need to see unresolved field-level conflicts for a spec. However, it does not explicitly state when not to use it or point to the conflict_resolve sibling for actually resolving those conflicts, so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_coverageC
Check Scenario slot coverage against the live tenant catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It implies a read-only operation via 'Check', but does not confirm side effects, return format, permissions, or any other behavioral aspects. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the action and subject. It contains no filler or redundant wording. While it is brief, it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, no annotations, and only an undocumented parameter, the description is incomplete. It does not clarify what 'coverage' means, what the tool returns, or how the agent should interpret the results. An agent would struggle to use this correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter spec_id has no description in the schema (0% coverage), and the tool description does not explain what it refers to. The parameter name hints it is an ID, but without further context, an agent cannot be certain what value to pass. The description fails to compensate for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and a specific resource ('Scenario slot coverage against the live tenant catalog'), which distinguishes it from other agent_spec tools like agent_spec_get or agent_spec_list. It is not a tautology, but the meaning of 'coverage' is domain-specific and not fully explained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or sibling tools to consider. There is no explicit context for when this check is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_createA
Create a tenant Scenario (Agent Spec): requirement segments + architecture slots. Admin UI calls this a scenario. Pass the returned spec_id on later create tools.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| slug | Yes | ||
| slots | No | ||
| status | No | ||
| segments | No | ||
| description | No | ||
| requirements | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose that the tool creates a resource and returns a spec_id to be used later, which is a meaningful behavioral cue. Yet it omits other relevant behavior such as idempotency, failure modes, or permission requirements, leaving the agent to infer the rest from the create verb. Some transparency is present, but it is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action is front-loaded, the Admin UI terminology note adds quick comprehension, and the spec_id follow-up is useful. Every sentence earns its place and the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a complex nested schema, no output schema, and no annotations, the description is far too sparse. It does not explain what a Scenario/Agent Spec is, the meaning of segments/slots/requirements, the role of required fields like slug and name, or how the returned spec_id should be used in subsequent tools beyond a vague pointer. The description leaves critical operational and compositional details unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not compensate for it. The phrase 'requirement segments + architecture slots' only vaguely references the segments, requirements, and slots parameters, without clarifying the structure, required fields, relationships, or expected formats. The seven parameters, including nested objects like slots and segments, remain largely unexplained, so an agent would struggle to construct a correct payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Create' and the resource 'tenant Scenario (Agent Spec)', making the primary action unmistakable. It adds useful context by clarifying that the Admin UI calls this a scenario and by naming the main payload components (requirement segments, architecture slots). Among a large set of yaaif_agent_spec_* siblings (list, get, update, publish, etc.), this is clearly the creation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a new scenario needs to be created and provides a workflow hint ('Pass the returned spec_id on later create tools'). However, it gives no explicit guidance on when to prefer this over similar tools like yaaif_agent_spec_update or yaaif_agent_spec_upsert_slots, nor does it mention exclusions such as existing specs. Adéquate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_deleteA
Delete an empty Scenario (Agent Spec). Allowed only when it has no current catalog bindings, is not active, and is not a required release dependency of another scenario.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation is only allowed under specific conditions (no catalog bindings, not active, not a release dependency), which is meaningful behavioral context beyond a bare 'delete'. It does not mention irreversibility or permissions, but the constraints are valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that states the action and the key constraints without any fluff. The main verb and resource are front-loaded, and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description captures the core purpose and preconditions but is incomplete for an agent to call the tool correctly. The expected_version parameter is unexplained (likely a concurrency guard), and behavior on failure or consequences of deletion are not covered. With no output schema or annotations, the description leaves important operational details unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain either parameter. 'spec_id' and 'expected_version' are entirely undocumented in prose, so an agent has no additional meaning beyond the raw schema names. The description fails to compensate for the lack of schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Delete') and a specific resource ('Scenario (Agent Spec)') with a distinguishing qualifier ('empty'). It is easy for an agent to tell this apart from sibling tools like yaaif_agent_spec_update or yaaif_agent_spec_delete_requirement, even without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides preconditions ('Allowed only when...') that act as usage restrictions, but it does not explicitly contrast this tool with alternatives or state when an agent should choose a different tool. The usage context is implied rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_delete_requirementA
Delete one unreferenced requirement. Remove it from its slots first.
| Name | Required | Description | Default |
|---|---|---|---|
| req_key | Yes | ||
| spec_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It communicates destructive intent and a necessary prior step, but does not explain failure behavior if the requirement is still referenced, whether deletion is permanent, or how the expected_version parameter gates the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences say exactly what the tool does and what must happen first. No filler, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-parameter deletion tool with no annotations, no parameter descriptions, and no output schema, this description is too sparse. It omits parameter semantics and key behavioral details such as concurrency checking and effect on slot references, leaving an agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should define the three parameters. It only hints at 'requirement' and 'slots' without mapping them to req_key, spec_id, or expected_version, and expected_version remains entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('delete one unreferenced requirement') and identifies the resource type (requirement), which distinguishes it from sibling tools that delete slots (yaaif_agent_spec_delete_slot) or whole specs (yaaif_agent_spec_delete). The 'one' qualifier also clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear precondition: remove the requirement from its slots first, and confines the tool to 'unreferenced' requirements. It does not explicitly name alternative tools, but the slot-removal instruction effectively routes the agent to slot-deletion operations first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_delete_slotC
Delete one unbound architecture slot.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| slot_key | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the destructive nature via 'Delete' and the unbound precondition, but doesn't mention irreversibility, concurrency via expected_version, behavior if the slot is bound, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loading the action and scope. Every word earns its place, though the terseness contributes to missing context elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive 3-parameter operation with no annotations and no output schema, the description leaves critical context unexplained: what an architecture slot is, what 'unbound' means, why expected_version is required, and what happens if the slot is bound or deletion fails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description names no parameters. It doesn't explain spec_id, slot_key, or expected_version, nor how they identify the slot or protect against concurrent modification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete'), a specific resource ('one unbound architecture slot'), and singular scope ('one'), which distinguishes it from bulk operations like upsert_slots and from deleting an entire spec via yaaif_agent_spec_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over siblings. It doesn't mention yaaif_agent_spec_upsert_slot for adding/updating slots or yaaif_agent_spec_delete for whole-spec deletion, and it doesn't state prerequisites beyond the word 'unbound'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_dependenciesA
Return the Scenario dependency graph for change-impact analysis: requirements, slots, bound objects, and evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden; 'Return' signals a read operation and the sentence identifies the graph's components. However, it does not mention prerequisites, failure modes, output shape, or whether the graph is computed on demand, leaving meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the action, resource, and purpose, then lists the graph contents. There is no filler and no repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For one required parameter, the description is close to adequate, but because there is no output schema and no annotations it should say more about the returned graph structure and prerequisites. The listed components (requirements, slots, bound objects, evidence) offer a sketch, not a complete contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description never mentions spec_id, its format, or how it selects the scenario. The parameter name is inferable from the tool name, but the description adds no semantic value beyond what the schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and resource ('Scenario dependency graph'), and gives the analytic purpose ('change-impact analysis'). It also lists the graph's contents, which helps separate it from the broader family of spec tools, though it does not explicitly contrast it with yaaif_agent_spec_release_dependencies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for change-impact analysis' provides clear context for when the tool is appropriate. It does not name alternatives or explicitly state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_drift_scanA
Run a non-destructive Scenario drift scan. It records readiness conflicts only; use sync preview/apply to resolve them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explicitly states 'non-destructive' and 'records readiness conflicts only', which clarifies that it doesn't modify anything and only captures a specific type of data. This is valuable behavioral disclosure, though it doesn't mention return format or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The key characteristics (non-destructive, records only) are front-loaded, and the pointer to sync preview/apply is a natural next step. Efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional param, no output schema), but the description omits what the scan returns and fails to explain the 'limit' parameter. It provides enough to invoke the tool but not enough to interpret results or use the parameter correctly. Given the simplicity, a more complete description was expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the 'limit' parameter at all, and the schema provides no description either (0% coverage). The agent is left to guess what 'limit' does—likely a maximum number of results, but not stated. Since there is only one parameter, the description should at least hint at its meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Run'), the resource ('Scenario drift scan'), and the scope ('non-destructive', 'records readiness conflicts only'). It distinguishes itself from the sync tools (preview/apply) which are for resolving conflicts, so an agent can tell this is a read-only diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly points to 'sync preview/apply' as the resolution tools, which helps routing after a scan. However, it doesn't compare with other scan-like tools (e.g., yaaif_agent_spec_readiness, yaaif_agent_spec_coverage) to clarify when this specific scan is preferred over them. The guidance is useful but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_evidence_recordB
Record requirement-level verification evidence from a passed agent test, ambient smoke run, or audited manual attestation.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| result | Yes | ||
| payload | No | ||
| spec_id | Yes | ||
| summary | No | ||
| source_id | No | ||
| expires_at | No | ||
| provenance_uri | No | ||
| idempotency_key | No | ||
| requirement_key | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action of recording and the source types; it does not disclose idempotency, overwrite/append behavior, validation of spec version, permissions, or side effects. The presence of an idempotency_key in the schema hints at possible idempotency, but the description does not mention it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the verb and object. It contains no extraneous words and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters, no schema descriptions, no annotations, and no output schema, this one-sentence description is insufficient. It does not explain the meaning of required fields like expected_version or requirement_key, nor what the operation returns or how it handles existing evidence. An agent would need to guess several parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for 11 parameters. It adds context for the 'kind' parameter by listing the three enum values, but it does not explain 'result', 'spec_id', 'expected_version', 'requirement_key', 'payload', 'source_id', 'expires_at', 'provenance_uri', 'idempotency_key', or 'summary'. This leaves the agent to infer their meaning from names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb ('Record') and resource ('requirement-level verification evidence') and enumerates three evidence sources. However, it does not explicitly differentiate this tool from its sibling 'release_provenance_record' or other evidence-related tools, though the context is reasonably specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool: to record evidence from a passed agent test, ambient smoke run, or audited manual attestation. It provides clear context but no explicit exclusions or alternatives; it does not mention when not to use it or point to a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_getA
Load one Scenario (Agent Spec) by id or slug, including segments, slots, bindings, and workflow_design.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It states what the tool returns (including segments, slots, bindings, and workflow_design) but does not mention the read-only nature, any side effects, permission requirements, or pagination. Since it is a 'Load' operation, the read-only implication is reasonable but not explicit. The description adds some behavioral context but lacks safety and side-effect disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource and then enumerates included contents. It is efficient and has no fluff. Not quite a 5 because it could be even more compact, but it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id/slug operation with a single parameter, the description is fairly complete: it names the resource, selection criteria, and key content included. It lacks explicit return format details or error conditions, but given the simplicity and no output schema, the provided information is sufficient for an agent to decide to call it. A minor gap is not documenting any special cases like not-found behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines spec_id as a string with 0% description coverage. The description adds critical semantics by clarifying that this parameter accepts either an id or a slug, which is not implied by the schema alone. It compensates for the schema gap, though it doesn't give format examples or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Load), a specific resource (one Scenario/Agent Spec), and the selection criteria (by id or slug). It also lists the contents (segments, slots, bindings, workflow_design), clearly distinguishing it from list operations like yaaif_agent_spec_list and from yaaif_agent_get which targets a different entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case—retrieve a single, detailed Agent Spec—but does not explicitly contrast it with alternatives or state when not to use it. There is no mention of when to prefer list or other retrieval tools. The guidance is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_legacy_revision_backfill_applyA
Apply a reviewed legacy-release backfill with the exact preview hash. This is an explicit operator action, not tenant rollout automation.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| preview_hash | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It conveys that this is an explicit operator action, but it does not disclose side effects, write semantics, irreversibility, validation failure behavior, or what happens after the backfill is applied. For a mutating apply-style tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core action is front-loaded, and the second sentence adds a meaningful distinction rather than repeating the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-risk apply operation with no output schema, no annotations, and zero parameter documentation, this description is not complete enough. It lacks return-value expectations, failure behavior, side effects, and the prerequisite relationship to the preview flow beyond the phrase 'exact preview hash.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three parameters. It only adds meaning to 'preview_hash' by describing it as the exact preview hash; it does not explain 'spec_id' or 'expected_version' or how they relate to the backfill operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Apply') on a specific resource ('legacy-release backfill') and adds a hard qualifier ('with the exact preview hash'). It also explicitly distinguishes itself from tenant rollout automation, which helps separate it from nearby workflow tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames this as an operator action for reviewed backfills, and the phrase 'exact preview hash' strongly implies it should follow a preview step. It does not explicitly name the sibling preview tool or list when not to use it, but the context and exclusion are reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_legacy_revision_backfill_previewB
Preview legacy release metadata normalization. This is read-only and never runs automatically for any tenant.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly discloses the two most important behaviors: the tool is read-only and it never runs automatically. It does not describe what the preview returns or whether any temporary state is created, but the core safety behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The action is front-loaded in the first sentence, and the critical safety qualifier is in the second. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There are no annotations and no output schema, so the description is the only source of guidance. It omits what the preview output will contain, what normalization means in this context, and how it relates to the sibling apply tool. For an agent to call this correctly and interpret the result, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only `spec_id` as a required string with no description, and schema description coverage is 0%. The description does not explain what `spec_id` refers to, where to find it, or what values are valid. The parameter is somewhat self-explanatory from its name, but the description adds no real semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Preview') and a specific object ('legacy release metadata normalization'), so an agent can tell it is a preview operation rather than an apply operation. The phrase 'legacy release metadata normalization' is jargon and not fully explained, which prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The statement 'This is read-only and never runs automatically for any tenant' gives useful safety context and implies the agent must invoke it explicitly. However, it does not explicitly say when to use this preview instead of the sibling `yaaif_agent_spec_legacy_revision_backfill_apply` or any other alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_listC
List Scenarios (Agent Specs) for the active tenant.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states it lists scenarios, but does not mention read-only behavior, pagination, default limits, response format, or any side effects. This is minimal and leaves critical behavioral details unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the core purpose. It avoids unnecessary verbosity, but is perhaps too terse given the lack of other context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with three parameters and no output schema, the description is inadequate. It does not explain parameter semantics, response shape, or usage context. The agent would need to rely on the schema alone, which is insufficient given 0% description coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any of the parameters (q, limit, status) or their meanings. The agent has no indication of how to use these parameters for filtering or pagination, making the tool difficult to invoke correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a specific resource ('Scenarios (Agent Specs)'), and a scope ('for the active tenant'). It clearly distinguishes from related list tools like yaaif_agent_list (which lists agents) and yaaif_skill_list (which lists skills) by specifying 'Agent Specs'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any mention of the parameters (q, limit, status) or typical use cases. It does not clarify what scenarios are or how they relate to other agent spec operations, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_metricsC
Query telemetry metrics attributed to a Scenario (sessions, tokens, tools).
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | ||
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Query' implies a read operation, but the description does not mention time-windowing behavior, aggregation, result limits, permissions, or what the returned telemetry looks like. The parenthetical '(sessions, tokens, tools)' adds only minor context about metric categories.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundant phrasing. It is appropriately concise, though it sacrifices useful behavioral and parameter detail. As a conciseness measure, this is strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and only 2 loosely explained parameters, the description should clarify what data is returned and what spec_id and hours mean. It does neither. An agent would likely need to inspect sibling tools or examples to use this correctly, so the description is incomplete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the two parameters. spec_id can be loosely inferred as the Scenario identifier from the description and parameter name, but hours is completely unexplained: no units, default, range, or meaning. The description adds no real semantic value beyond what the bare parameter names suggest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Query') and resource ('telemetry metrics attributed to a Scenario') with the metric categories listed in parentheses. This distinguishes it from obvious CRUD siblings like yaaif_agent_spec_get/update/delete, though 'Scenario' is left as a domain term without definition. It is clear enough for an agent to know what the tool does, but not fully differentiated from other telemetry/metrics siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus related tools such as yaaif_ops_telemetry, yaaif_agent_spec_rollout_metrics, or yaaif_telemetry_get. The description implies this is for scenario-attributed metrics, but it provides no exclusions, prerequisites, or context that would help an agent choose between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_policy_exportA
Export the portable Scenario tenant policy document for review or promotion across environments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It communicates that this is an export (non-mutating) action returning a portable document, but it does not specify output format, delivery mechanism, or permissions. This is adequate for a zero-parameter read-style tool, though more detail would help.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise, front-loaded sentence. It states the action and resource immediately, and 'portable' plus 'review or promotion across environments' add meaningful context without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no annotations and no output schema, the description covers the essential purpose and what is produced. It could be more explicit about what 'portable' means or how the export is returned, but an agent can still select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there are no parameter semantics for the description to clarify. The baseline of 4 applies because nothing is missing in parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Export') on a specific resource ('Scenario tenant policy document') and adds a clear purpose ('for review or promotion across environments'). It distinguishes this from nearby policy and release tools by emphasizing 'portable' and cross-environment use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when this tool is relevant—review or promotion across environments—so an agent can match it to the user's intent. It does not explicitly name alternatives or exclusion conditions, but the context is sufficiently stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_policy_getA
Read the tenant Scenario enforcement mode. New tenants default to observe.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states the tool is read-only ('Read') and provides a default behavior for new tenants ('New tenants default to observe'), which helps the agent understand the state it might encounter. This is valuable context beyond the name. However, it does not disclose potential side effects like caching or rate limits, but for a simple getter, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that states the primary action and a key detail about default behavior. It is front-loaded with the verb and resource, and every word earns its place. There is no fluff, and it is appropriately brief for a zero-parameter getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, no output schema, and no annotations, this description is fully complete. It tells the agent exactly what it does (reads the mode), what the default is (observe), and implies the return type (the mode value). There is nothing else an agent needs to know to invoke it correctly. The simplicity of the operation makes this sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100% (vacuously true). Since there are no parameters to document, the description doesn't need to add parameter semantics. The description focuses on the return value (the enforcement mode) and default behavior, which is the only meaningful semantic content. A score of 4 is appropriate because the description effectively 'documents' the return value, which is the only relevant semantic aspect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads the tenant Scenario enforcement mode, with a specific verb ('Read') and resource ('tenant Scenario enforcement mode'). It also provides a useful default behavior ('New tenants default to observe'), which clarifies the tool's purpose without ambiguity. This distinguishes it from sibling tools like yaaif_agent_spec_policy_set and yaaif_agent_spec_policy_import, which are mutating or importing operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read-only operation but does not explicitly state when to use this tool versus alternatives. For example, it doesn't mention when to use yaaif_agent_spec_policy_get instead of yaaif_agent_spec_policy_export or yaaif_agent_spec_policy_set. The context of 'Read the tenant Scenario enforcement mode' is clear, but there is no explicit guidance on when not to use this tool or when to prefer a sibling. Without annotations, this is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_policy_importC
Import a reviewed version-1 Scenario tenant policy document. This controls enforcement, evidence TTL, and high-assurance override approval.
| Name | Required | Description | Default |
|---|---|---|---|
| document | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states what the document controls, not what importing does (e.g., overwrite, validate, require existing policy) or any side effects. It also misleads by claiming 'version-1' while the schema permits version 2.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the main action and resource front-loaded. The description is efficient, though the inaccurate 'version-1' qualifier slightly harms precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex union input schema, no output schema, and no annotations. This brief description omits validation behavior, merge/overwrite semantics, return values, and version reconciliation, making it inadequate for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning by linking the document to enforcement, evidence TTL, and high-assurance approval, which maps roughly to mode, evidence_ttl_days, and require_second_approver. However, with 0% schema description coverage, it does not explain the version 1 vs 2 structural differences or the additional release governance fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly identifies the action (import) and resource (a Scenario tenant policy document), and states what the document controls. However, it does not differentiate from the sibling yaaif_agent_spec_policy_set, and the 'version-1' qualifier conflicts with the schema that also accepts version 2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as yaaif_agent_spec_policy_set or yaaif_agent_spec_policy_export. No prerequisites, exclusions, or decision criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_policy_setC
Promote the active tenant from observe to warn or require after adoption inventory review.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden of behavioral disclosure. It implies a mutation (promote) but does not disclose side effects, reversibility, impact on other tenants, or any authorization requirements. The phrase 'from observe to warn or require' is misleading because the tool can also set to 'observe', contradicting the described promotion direction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff, which is good for structure. However, it is under-specified, providing minimal information that could have been expanded without verbosity. It is not tautological but sacrifices clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple schema, but with no output schema, no annotations, and a very short description, critical context is missing. The agent does not learn what 'adoption inventory review' is, what the policy modes mean, or what the consequences of promotion are. The description is insufficient for a safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not mention the 'mode' parameter at all. While the enum values are listed in the schema, the description only hints at 'warn' and 'require' and gives no explanation of what each mode means or how to choose one. The agent receives no semantic guidance beyond the enum names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('promote') and resource ('active tenant') and implies a policy state change. It distinguishes from get/import/export siblings by the 'promote' action. However, it says 'from observe to warn or require' while the schema allows setting to 'observe' as well, creating a slight inaccuracy about the full scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only a vague timing context is given ('after adoption inventory review'), with no explicit when-to-use versus alternatives like yaaif_agent_spec_policy_get or import/export. No exclusions or conditions are provided, leaving the agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_processingC
Get Scenario processing / lifecycle status (revisions, sync, attribution).
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read operation ('Get') but discloses no behavioral traits such as required permissions, failure modes, or what exactly is returned. The mention of 'lifecycle status' is superficial and doesn't explain side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no wasted words. It front-loads the action and states the target. It is efficient, though its brevity contributes to its incompleteness in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is inadequate for a tool with no output schema, no annotations, and zero parameter documentation. An agent cannot determine what spec_id refers to, what 'processing status' includes, or how to interpret the result. The description is far too sparse to support correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain the parameter. It does not mention spec_id at all. The parameter is only defined as a string in the schema, and the description adds no meaning about what spec_id represents or how it should be formatted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and a resource ('Scenario processing / lifecycle status'), and lists some aspects (revisions, sync, attribution). However, 'Scenario processing / lifecycle status' is vague and not clearly differentiated from other agent spec tools like yaaif_agent_spec_get or yaaif_agent_spec_revisions. It's not a tautology, but lacks precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many sibling tools with similar names (e.g., yaaif_agent_spec_revisions, yaaif_agent_spec_sync_preview). There is no mention of conditions, alternatives, or context that would help an agent select this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_publishB
Publish an immutable semantic Scenario release. Use patch for corrections, minor for compatible capability additions, and major for breaking architecture or requirement changes.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| release_kind | No | ||
| change_summary | No | ||
| release_channel | No | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'immutable' as a key trait, implying that published releases cannot be modified. However, it does not disclose other behaviors such as permission requirements, whether publishing is destructive (e.g., overwriting), side effects, or the nature of the response. This is a significant gap for a release-publishing action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that fronts the primary action and then provides versioning guidance. It is concise and free of fluff. However, it is so brief that it under-covers necessary details, but the conciseness itself is appropriate for the content it does convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no output schema, and no annotations, the description is woefully incomplete. It omits critical information about the expected_version (likely a concurrency guard), change_summary, and release_channel, and does not describe the outcome or side effects of publishing. An agent cannot reliably use this tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameter meanings. It only explains release_kind values (patch/minor/major) and their rationale. It does not clarify the purpose of spec_id, expected_version, change_summary, or release_channel, leaving the agent to infer them from names alone. This is insufficient for a 5-parameter tool with no schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Publish') and resource ('immutable semantic Scenario release'), which makes the tool's core function clear. It also hints at versioning semantics (patch/minor/major) that distinguish it from mere creation or updates. However, it does not explicitly contrast with sibling tools like export/import, though the term 'publish' is fairly distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use each release_kind: 'Use patch for corrections, minor for compatible capability additions, and major for breaking architecture or requirement changes.' This is clear parameter-level usage advice. It does not mention when not to use the tool or alternatives, but the guidance is actionable and sufficient for the primary decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_readinessB
Return machine-readable activation/publish blockers, requirement coverage, stale evidence, and pending sync conflicts.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden; it does signal a read operation ('Return') and an output format ('machine-readable'), and it enumerates the returned categories. However, it does not disclose whether computing readiness has side effects, what inputs/state are required (e.g., published spec), or how 'stale' evidence is determined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler; every phrase adds information about what the returned readiness report contains. It is appropriately sized for a one-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is an aggregate report of four distinct concern areas, and there is no output schema or annotation to fill gaps. The description does not define the machine-readable structure, how the categories are computed, or what spec_id identifies, so an agent cannot fully predict the response or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only a required spec_id string with 0% description coverage, and the tool description never mentions spec_id or explains what values it accepts. Although the tool name makes the parameter's role somewhat inferable, the description fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and a precise resource ('agent spec readiness'), enumerating four output categories: activation/publish blockers, requirement coverage, stale evidence, and pending sync conflicts. It is not a tautology, but it does not explicitly distinguish itself from close siblings such as yaaif_agent_spec_coverage and yaaif_agent_spec_conflicts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to call this tool rather than the overlapping agent_spec_* siblings. The description never names alternatives, exclusions, or conditions, leaving the agent to infer that 'readiness' is a summary of coverage/conflicts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_approval_refreshB
Refresh one Scenario release approval from approval-service before attempting the governed action.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| approval_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals the data source (approval-service) and intent (refresh), but does not say whether the refresh mutates state, is idempotent, or how stale or missing approvals are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tight sentence with the core directive front-loaded and no filler. It is concise without sacrificing the key temporal context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter refresh operation, the description provides the essential trigger and resource. However, since there are no annotations and no output schema, it leaves unclear what 'governed action' means, what the caller should do with the refreshed approval, and what kind of response to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain spec_id or approval_id. The parameter names are somewhat self-explanatory and the phrase 'one...approval' hints at approval_id, but the description adds essentially no meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Refresh'), a specific resource ('one Scenario release approval'), and a workflow context ('before attempting the governed action'). It is distinguishable from siblings like release_approval_request and release_approvals because it emphasizes a refresh step, though 'Scenario' and 'governed action' are not defined precisely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear temporal trigger for when to use the tool: before attempting a governed action. This is useful context, but it does not explicitly name alternatives or state when not to use the tool, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_approval_requestC
Request the configured approval-service review for a major Scenario release, a release-candidate promotion, or a restore. This is inactive unless tenant policy v2 explicitly enables release governance.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| spec_id | Yes | ||
| release_kind | No | ||
| idempotency_key | No | ||
| expected_version | Yes | ||
| restore_revision | No | ||
| candidate_revision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the policy requirement but does not disclose side effects, whether the request is asynchronous, idempotency handling, or what happens after the request (e.g., creates an approval task). The description only says 'request review' without behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the purpose, but the second sentence is a caveat. It is concise but lacks necessary detail; however, it is not verbose and has a clear structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters (3 required) and no output schema or annotations, the description is severely incomplete. It fails to explain parameter meaning, expected outcomes, failure conditions, or the relationship to other approval-related tools. An agent would struggle to call this correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any of the 7 parameters. Schema description coverage is 0%, and the description gives no hints about spec_id, expected_version, action semantics, release_kind, restore_revision, candidate_revision, or idempotency_key. The mention of scenarios doesn't map to parameters, so the description adds no value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool requests approval-service review for three scenarios (major release, release-candidate promotion, restore), distinguishing it from direct publish/restore tools. However, the mapping between the described scenarios and the action enum (only 'publish' and 'restore') is ambiguous – 'release-candidate promotion' isn't directly represented, so the purpose is clear but not fully precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite condition ('inactive unless tenant policy v2 explicitly enables release governance') but does not explicitly contrast with sibling tools like yaaif_agent_spec_publish, yaaif_agent_spec_release_candidate_promote, or yaaif_agent_spec_revision_restore. It implies this is for approval workflow, but doesn't state when to choose this over direct action tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_approvalsA
List immutable-draft release approval requests and their latest recorded approval-service status.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It states the tool lists requests and status, implying a read-only operation, but does not explicitly confirm no side effects, discuss potential latency, or mention any limitations. It gives some context (immutable-draft, latest status) but does not go beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that leads with the action and object. There is no fluff or redundancy; every word contributes to the meaning. It is appropriately front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single required parameter and no output schema, the description should clarify what spec_id represents and what the returned data structure looks like. It does neither. The parameter is ambiguous, and the return format is unstated, leaving an agent with insufficient information to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain what 'spec_id' refers to. The description mentions 'immutable-draft release approval requests' but never connects that to the parameter. An agent has no clue what value to pass for spec_id, making the tool unusable without external knowledge. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('List') and resource ('immutable-draft release approval requests') and adds that it returns the latest recorded approval-service status. It distinguishes from siblings like yaaif_agent_spec_release_approval_request (create) and yaaif_agent_spec_release_approval_refresh (refresh). The verb and object are precise, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read-only listing operation but does not explicitly mention when to use it versus alternatives or any exclusions. It lacks direct guidance on when not to use it, but the purpose is clear enough for an agent to infer the context. No explicit alternatives are named, so it falls short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_candidate_promoteA
Promote a verified Scenario release candidate to its stable SemVer release. Promotion creates a fresh immutable stable record and never rewrites the candidate.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| revision | Yes | ||
| change_summary | No | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly discloses that promotion creates a new immutable record and never rewrites the candidate, which is valuable behavioral context. However, it omits side effects like whether approvals are required, what happens to existing stable versions, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff, front-loaded with the primary purpose. The behavioral note is efficiently integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, no annotations), the description is incomplete. It lacks parameter explanations, preconditions like what 'verified' means, and any mention of return values or failure modes. An agent would need to infer too much.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not explain any of the parameters (spec_id, revision, change_summary, expected_version). The names and required fields hint at their purpose, but without explicit definitions, an agent may not correctly map values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (promote), the resource (verified Scenario release candidate), and the target (stable SemVer release). It also distinguishes itself by noting it creates a fresh immutable record and never rewrites the candidate, which sets it apart from related promotion or publishing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for verified candidates and creates a stable release, but it does not explicitly state when to use it versus alternatives like yaaif_agent_spec_publish or other release tools. There is no exclusion or direct comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_compatibilityB
Preview declared dependent-Scenario compatibility with a proposed provider semantic release; policy may optionally block required incompatibilities.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| release_kind | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral disclosure burden. 'Preview' suggests a non-mutating inspection and 'policy may optionally block required incompatibilities' exposes a conditional policy effect, which is useful context. However, the description never clarifies whether 'block' is an output flag or an actual enforcement action, whether the call has side effects, or what the return value looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with the verb and object front-loaded, and it contains no filler. 'May optionally' is mildly redundant, and the heavy jargon reduces readability, but the structure is compact and appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description needs to provide more of the operational contract, but it omits return-value expectations and the practical meaning of 'blocked.' For a policy-aware compatibility preview, the missing side-effect and output semantics are material gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explicitly explain either parameter. 'Provider semantic release' hints at the meaning of release_kind, but spec_id is completely undefined, so an agent cannot tell what entity it references or how release_kind changes the compatibility check.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Preview') and identifies the resource ('declared dependent-Scenario compatibility') plus the release context ('proposed provider semantic release'), so the basic operation is recognizable. It does not explicitly differentiate itself from sibling release/adoption tools, and the domain jargon is left unexplained, which lowers the score slightly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no sibling alternatives are mentioned. The phrase 'with a proposed provider semantic release' implies the natural pre-release compatibility-checking context, but an agent must infer whether this is preferable to yaaif_agent_spec_adoption_preview or the release approval/promotion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_dependenciesB
List explicit provider Scenario version constraints declared by this consumer Scenario.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The verb 'List' and the qualifier 'declared' imply a read-only, non-mutating operation, which is useful. However, it does not disclose potential errors, auth requirements, or whether an empty result is possible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. The core action and key qualifiers ('explicit', 'provider', 'version constraints', 'consumer Scenario') are front-loaded and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read operation, so the description is not severely inadequate. Still, with no output schema and no explanation of what a 'version constraint' contains or how the result is presented, the agent has limited context for interpreting the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single parameter, spec_id, with 0% description coverage. The description refers to 'this consumer Scenario' but never explicitly connects it to spec_id, leaving the agent to infer that spec_id identifies the consumer Scenario whose dependencies should be listed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('List') and a clear resource: explicit provider Scenario version constraints declared by the consumer Scenario. This distinguishes it from generic dependency tools and makes the tool's scope immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools such as yaaif_agent_spec_dependencies, yaaif_agent_spec_release_dependency_upsert, and yaaif_agent_spec_release_dependency_delete exist, but the description does not explain how this listing tool differs or when each should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_dependency_deleteB
Remove one explicit Scenario provider dependency using the current optimistic draft version.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| expected_version | Yes | ||
| provider_spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the optimistic concurrency aspect ('current optimistic draft version'), implying a version-check behavior via expected_version. However, it does not mention that this is a destructive delete operation, nor any side effects like what happens if the dependency isn't found or if the version mismatches. It provides only minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action and resource, zero redundancy. It is appropriately concise for a simple delete operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and three required parameters, the description is insufficiently complete. It does not explain parameter meanings beyond the version hint, does not describe any return value or error behavior, and offers no usage context compared to sibling operations. An agent would need additional information to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so no parameter info exists in the schema. The description partially clarifies expected_version ('current optimistic draft version') but gives no explanation for spec_id or provider_spec_id, which are left to the agent to infer. The description does not fully compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Remove' and identifies the resource ('explicit Scenario provider dependency') and the context ('using the current optimistic draft version'). This is clear and distinguishes it from sibling tools like dependency_upsert (add/update) and dependencies (list/list view).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor any prerequisites or conditions. The description does not explain when a delete is appropriate or when to use upsert instead, leaving the agent to infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_dependency_upsertB
Declare that this consumer Scenario depends on a provider Scenario release range. The update is version-protected and explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| required | No | ||
| expected_version | Yes | ||
| provider_spec_id | Yes | ||
| version_constraint | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the behavioral burden. It contributes 'The update is version-protected and explicit,' hinting at an optimistic concurrency check via expected_version, but does not disclose failure modes, side effects, or permissions. This is partial transparency, not a complete behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: the first gives the core purpose and the second adds a distinctive behavioral trait. It is appropriately sized and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is an upsert tool with five parameters, no annotations, no output schema, and zero schema descriptions. The description omits parameter meanings, the version-protection mechanism, the expected format of version_constraint, and whether required is optional. An agent cannot safely know how to invoke it correctly from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only obliquely references a release range (likely version_constraint) and version protection (likely expected_version), but never explains spec_id, provider_spec_id, version_constraint syntax, or the required boolean. This is inadequate for constructing a valid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Declare') and the resource (consumer Scenario depends on provider Scenario release range), which distinguishes it from listing or deleting dependencies. However, it does not explicitly differentiate from siblings like yaaif_agent_spec_release_dependencies, relying on the tool name's 'upsert' to imply create-or-update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as yaaif_agent_spec_release_dependency_delete or yaaif_agent_spec_release_dependencies. It does not state prerequisites, when to create versus update, or what makes it the right choice in a given workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_exportB
Export a signed-by-hash Scenario release manifest suitable for committing to Git, review, and disaster recovery.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| revision | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only adds 'signed-by-hash' and an intended use case. It does not disclose whether the operation is read-only, what the returned manifest contains, how it is delivered, or what failures can occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that front-loads the action ('Export') and includes the most important qualifier ('signed-by-hash'). There is no filler or redundant repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and low schema coverage, the description is too thin. It omits output format, side effects, prerequisites, and relationships to nearby release-management tools, leaving several important operational details unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It does not mention spec_id or revision at all, leaving the agent to infer their meaning from names alone. The schema only provides types, not semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('Export') and a specific resource ('signed-by-hash Scenario release manifest'), so an agent understands the basic action. It does not explicitly differentiate from sibling release tools like yaaif_agent_spec_release_provenance_record or yaaif_agent_spec_release_import, but the export/import contrast is reasonably inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'suitable for committing to Git, review, and disaster recovery' gives a clear use context. However, it does not state when to prefer this tool over related release tools, nor does it mention prerequisites such as a published/released spec or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_importB
Import a reviewed, hash-verified Scenario release manifest from Git as a new draft. It preserves bound slot identities and never changes release history.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| document | Yes | ||
| change_summary | No | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose important non-destructive behavior: creates a draft, preserves slot identities, and never changes release history. However, it omits details about permission requirements, version-mismatch behavior, validation failures, or whether the import is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both informative, with the core purpose front-loaded and the key invariants stated immediately after. No filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters, a nested required document object, no output schema, and no annotations, so the description needs to do more. It fails to explain how expected_version is used, what 'from Git' means in terms of the spec_id parameter, what change_summary is for, or what the resulting draft looks like. The description provides a good summary but not enough operational context for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the four parameters, but it provides no parameter-level meaning. There is no explanation of what spec_id refers to, how expected_version is validated, what the nested document must contain, or what change_summary is for. The agent is left to infer all of this from the schema structure alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (import), a specific resource (reviewed, hash-verified Scenario release manifest from Git), and the outcome (a new draft). It also states the two defining invariants: preserving bound slot identities and never changing release history. This clearly distinguishes the tool from export, promote, provenance, and other release-related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when importing an already reviewed and hash-verified release manifest as a draft. However, it does not explicitly say when not to use it or name alternatives such as release_candidate_promote, release_export, or adoption tools. The usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_provenance_listA
List build/test/artifact/SBOM/deployment provenance attached to immutable Scenario releases.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'List' implies a read-only operation, and the description names the provenance categories, but it does not mention authentication needs, pagination, return format, or whether empty results are possible. The 'immutable Scenario releases' detail adds useful context but is not a complete behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the operation and the resource scope efficiently, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one required parameter, no nested objects, no output schema), the description is adequate but has gaps. It does not describe the shape of the returned provenance data, pagination behavior, or any filtering options beyond the implicit spec_id. This is acceptable for a simple list tool but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of the sole required parameter, spec_id. While the parameter name is somewhat self-explanatory, the description does not compensate for the schema gap by specifying what kind of ID spec_id is or how it relates to 'Scenario releases'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('build/test/artifact/SBOM/deployment provenance attached to immutable Scenario releases'). This clearly distinguishes it from sibling tools like yaaif_agent_spec_release_provenance_record, which is about recording rather than listing provenance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when provenance for Scenario releases is needed, but it provides no explicit when-to-use guidance, exclusions, or alternatives. It does not mention that provenance can be recorded via a sibling tool or when listing would be inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_release_provenance_recordC
Record build, isolated verification, artifact, SBOM, or deployment provenance for one immutable Scenario release. A release candidate needs passing verification provenance before promotion.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| result | No | ||
| payload | No | ||
| spec_id | Yes | ||
| revision | Yes | ||
| sbom_uri | No | ||
| ci_run_url | No | ||
| commit_sha | No | ||
| report_uri | No | ||
| artifact_digest | No | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that provenance is 'recorded,' implying a write operation, but does not mention any side effects, idempotency, validation behavior, or what happens to the release state if recording fails. The note about promotion requirements is a precondition, not a behavioral description. For a mutation tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the core action and resource are in the first sentence, and the supporting context (promotion requirement) is in a short second sentence. There is no wasted wording. It earns a 4 because, while efficient, it could be improved by integrating parameter hints or usage exclusions into the structure without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters, 4 required, no schema descriptions, no output schema, and no annotations, the description is critically under-specified. It fails to explain any parameter semantics, does not describe the return value or effects, and lacks examples or edge-case guidance. The agent cannot reliably construct a valid invocation from this description alone. This is a major completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (no descriptions in the schema), and the description does not explain any of the 11 parameters. It lists the kinds of provenance (which map to the 'kind' enum) but provides no meaning for spec_id, expected_version, revision, result, payload, or other fields. The description adds no semantic value over the raw schema, so the agent cannot understand what each parameter is for. This is severely inadequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb ('Record') and resource ('provenance for one immutable Scenario release'), and enumerates the specific types of provenance (build, isolated verification, artifact, SBOM, deployment). It distinguishes this recording tool from the sibling listing tool (yaaif_agent_spec_release_provenance_list) by its action. The added note about promotion requirements provides useful context without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a conditional hint: 'A release candidate needs passing verification provenance before promotion,' which implies when verification provenance should be recorded. However, it does not explicitly compare against alternatives (e.g., evidence_record) or state when NOT to use this tool. The usage guidance is partial—enough to infer the main use case, but without clear exclusions or differentiation from related record/evidence tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_revision_compareA
Compare two immutable Scenario releases at the identity, segment, requirement, and slot level before restoring or promoting a change.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| to_revision | Yes | ||
| from_revision | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure burden. The description mentions 'immutable' releases, implying a read-only comparison, but it does not explicitly state that the tool has no side effects, nor does it describe the output format or behavior on mismatch. Critical details about whether this is a safe read operation are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no fluff. It front-loads the action ('Compare'), the object ('two immutable Scenario releases'), and the scope ('at the identity, segment, requirement, and slot level'), efficiently conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of comparing at four distinct levels, the lack of an output schema, and no annotations, the description is inadequate. It does not explain what kind of differences will be reported, how to interpret the results, or any prerequisites (e.g., both revisions must exist). An agent would struggle to correctly use this tool without more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain what spec_id, from_revision, or to_revision mean beyond implying a 'from' and 'to' comparison. The description references 'two ... releases' but does not map them to the parameters, leaving the agent to guess which revision is which and what spec_id refers to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares two immutable Scenario releases at the identity, segment, requirement, and slot level. It also positions the tool relative to downstream actions ('before restoring or promoting'), which distinguishes it from sibling tools like revision_restore and release_candidate_promote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the comparison is done 'before restoring or promoting a change,' giving clear context for when to invoke it. However, it does not explicitly name the alternative tools (e.g., yaaif_agent_spec_revision_restore) or state when NOT to use this tool, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_revision_restoreA
Restore an immutable Scenario release into a new draft. Historical releases are never altered; review and publish the restored draft as a new semantic release.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| revision | Yes | ||
| change_summary | No | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It explicitly guarantees historical releases are never altered and notes that the restored draft is not automatically published. It doesn't explain concurrency or conflict behavior, but the core behavioral contract is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence; every phrase earns its place and no filler or restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without annotations or an output schema, the description needs to cover the required parameters and success/failure semantics. It leaves expected_version's meaning and the operation's return value or conflict behavior to guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any parameter. spec_id and revision are somewhat inferable, but expected_version is functionally ambiguous (target version vs optimistic concurrency check) and change_summary is not mentioned at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: restore a Scenario release into a new draft. It also clarifies the core invariant ('Historical releases are never altered'), which distinguishes it from publish, compare, or promote siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use this when you need a mutable draft from an immutable release, then review and publish it. It does not explicitly name alternative tools or list when-not conditions, so it stops one step short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_revisionsC
List immutable Scenario releases with SemVer, parent revision, content hash, change summary, and author.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavioral traits. It notes the data is 'immutable', implying a read-only operation, but does not explicitly state that this is a non-mutating list operation, nor does it mention pagination, limits, ordering, or authorization requirements. The description carries insufficient behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the core purpose and enumerates the returned fields. It is concise, though it could be better structured with explicit parameter context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large sibling set, no output schema, and no annotations, the description is far from complete. It does not explain the relationship to other spec tools, does not define spec_id, and lacks any indication of output format or call constraints. An agent would have difficulty selecting and invoking this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must clarify the purpose of spec_id. It does not; it never mentions that spec_id identifies the scenario whose revisions are to be listed. The parameter's meaning is entirely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (list) and a specific resource ('immutable Scenario releases') and enumerates the fields returned (SemVer, parent revision, content hash, change summary, author). It is more informative than the tool name alone and likely refers to listing revisions of a given agent spec, though the term 'Scenario' is ambiguous and could be confused with other spec-related tools like yaaif_agent_spec_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many related siblings (e.g., yaaif_agent_spec_list, yaaif_agent_spec_get, yaaif_agent_spec_release_provenance_list). There is no mention of prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_rollout_metricsB
Read observe/warn/require rollout metrics: untracked mutations, readiness failures, overrides, sync conflicts, and verification failures.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. The verb 'Read' implies a non-mutating operation, which is helpful, but there is no mention of scoping (e.g., which agent spec or rollout), output format, or any required state (e.g., needing an active rollout). The five metric names hint at output content but not at any behavioral caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that leads with the action verb and resource, then enumerates the metric types in a compact series. Every word adds value and there is zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool, the description covers the core functionality but leaves gaps: it doesn't clarify whether the metrics are global or scoped to a specific agent spec, what form the output takes (JSON structure, aggregation, time range), or any caveats about data freshness. These are not severe, but an agent could call it with incorrect assumptions about scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters oz, so the baseline is 4 per rubric. The description does not need to compensate for missing schema details because there is nothing to invoke with. It accurately implies the tool takes no arguments by having no parameter discussion and an empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Read' and identifies a clear resource ('observe/warn/require rollout metrics') followed by five concrete metric categories. This is more specific than a tautology, but it doesn't contrast with sibling tools like yaaif_agent_spec_metrics or yaaif_agent_spec_coverage, so it relies on the name to carry differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over any of the ~200 siblings. It does not mention alternative tools, prerequisites, or typical scenarios. The description only states what it reads, leaving an agent to guess whether this is the right tool for a given intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_sync_applyB
Apply a reviewed preview: to_objects writes the Scenario onto bound catalog objects; from_objects adopts live catalog drift into the Scenario.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| direction | Yes | ||
| preview_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does disclose the two concrete behaviors: to_objects writes the Scenario onto bound catalog objects, and from_objects adopts live drift into the Scenario. However, it omits side-effect/irreversibility context, expected_version conflict behavior, and what happens if the preview is stale.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence, front-loaded with the action, then a clean semicolon-separated mapping of the two directions. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four required parameters, no output schema, and no annotations, this is under-specified for an apply/commit tool. The agent is not told how expected_version controls the apply, how to obtain a reviewed preview_id, or how this fits with sync_preview and the direct sync operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only clarifies the direction enum values. spec_id and preview_id are left to naming convention, and expected_version's role is completely unexplained despite being a required integer with exclusiveMinimum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action ('Apply a reviewed preview') and a resource, and the semicolon clause explains both directions (to_objects/from_objects), so the agent knows what the tool does. It doesn't explicitly distinguish this from sibling sync_from_objects/sync_to_objects tools beyond the preview/apply framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Apply a reviewed preview' clearly implies a prerequisite: the preview must already be reviewed before this tool is called. However, it does not name alternatives or explicitly state when NOT to use this tool versus sibling tools like yaaif_agent_spec_sync_preview or the direct sync tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_sync_from_objectsB
Adopt live catalog objects into the Scenario (explicit). Overwrites Scenario-owned names and workflow graphs. Preview with yaaif_agent_spec_sync_preview (from_objects), then apply. Not the default finish step after create/bind.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| preview_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the destructive behavior (overwrites) and mentions preview as a safety step. However, it doesn't cover reversibility, permission requirements, or failure modes, which would be expected for a mutation tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences that get to the point, front-loading the purpose and then adding usage guidance. No fluff, but the structure could be slightly improved by separating the overwrite warning from the preview instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three required parameters and no output schema, the description is sparse. It mentions preview but doesn't explain how to obtain preview_id or what expected_version is for. Missing parameter meanings and return behavior make it incomplete for an agent to call correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about spec_id, expected_version, or preview_id. Parameter names are somewhat self-explanatory, but the description adds no semantics and fails to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adopts live catalog objects into the Scenario and overwrites Scenario-owned names and workflow graphs. It names a sibling (yaaif_agent_spec_sync_preview) for preview, which helps differentiate, though it doesn't explicitly mention the reverse-direction sibling (sync_to_objects). The verb 'Adopt' and resource are specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to preview with yaaif_agent_spec_sync_preview before applying, and notes it is not the default finish step after create/bind. This gives actionable guidance on when to use it, though it doesn't contrast with all related tools like sync_to_objects or adopt.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_sync_previewA
Preview apply (to_objects: spec → catalog) or adopt (from_objects: catalog → spec). Read-only; must precede sync apply.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| direction | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'Read-only' and the required ordering, which are valuable, but it does not describe what the preview returns, whether changes are guaranteed to be absent, or any limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core action and directions are front-loaded, and the read-only/ordering note is placed efficiently at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter preview tool, the description covers the purpose, direction semantics, safety, and sequencing. The lack of an output schema and any return-format detail is a minor gap, but the essential information needed to call the tool correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so well by explaining the meaning of both enum values ('to_objects: spec → catalog', 'from_objects: catalog → spec'), which adds real semantic value beyond the raw schema. spec_id remains only nominally explained, but the directional mapping clarifies its role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool previews 'apply' or 'adopt' operations and precisely maps directions to spec→catalog or catalog→spec. It distinguishes itself from the related sync_apply tools by emphasizing preview and read-only, though it does not explicitly name alternative preview tools like adoption_preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this to preview before a sync apply, and it is read-only. It does not explicitly list exclusions or contrast with sibling tools, but the ordering constraint 'must precede sync apply' gives actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_sync_to_objectsB
Apply Scenario-owned names and workflow_design onto bound catalog objects. Preview with yaaif_agent_spec_sync_preview (to_objects), then apply. Skill pack files are not overwritten.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| preview_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It does state one important safety behavior: 'Skill pack files are not overwritten.' However, it does not disclose other effects, such as whether existing catalog object names are replaced, reversibility, permission requirements, or conflict handling—critical for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. The first sentence states purpose, the second gives the precise workflow (preview then apply), and the third adds a critical safety caveat. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and 0% parameter coverage, the description must carry substantial explanatory weight. At 3 sentences, it leaves major gaps: what 'bound catalog objects' are, how to obtain preview_id, the meaning of expected_version, and what happens on failure. It provides some high-level context but is far from complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no parameter descriptions (0% coverage), and the description does not compensate. It never explains what spec_id, preview_id, or expected_version represent, how preview_id is obtained (beyond mentioning the preview tool), or what expected_version enforces. An agent cannot infer the meaning of these required parameters from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Apply') and resource ('Scenario-owned names and workflow_design onto bound catalog objects'), and it references the preview tool with the direction '(to_objects)', distinguishing it from from_objects. However, it does not explicitly contrast with the sibling 'yaaif_agent_spec_sync_apply', which could be ambiguous for an agent deciding between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit sequencing: 'Preview with yaaif_agent_spec_sync_preview (to_objects), then apply.' This tells the agent when to use this tool relative to the preview step. It lacks when-not-to-use guidance and does not mention alternatives like sync_from_objects, but the core 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.
yaaif_agent_spec_sync_workflow_designA
Copy bound ambient workflow graphs into the Scenario workflow_design segment. This is an explicit adopt of live graphs. Prefer yaaif_agent_spec_sync_to_objects to apply Scenario-owned workflow_design onto catalog objects.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the mutating nature via 'Copy' and 'explicit adopt of live graphs,' implying a directed overwrite of the workflow_design segment. However, it omits permissions, version-check behavior, side effects, and reversibility, leaving only partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. The core action is front-loaded, and the alternative sibling is referenced immediately after clarifying the operation's semantic, making every word earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a niche sync tool with no annotations and no output schema, the description covers the high-level action and sibling differentiation, but not enough for an agent to call it confidently. It lacks parameter semantics, return value expectations, and details about how expected_version is used, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention spec_id or expected_version at all. The parameter names offer some inherent meaning, but the description adds no value beyond the schema and fails to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation: copying bound ambient workflow graphs into the Scenario workflow_design segment, and clarifies it as an explicit adopt of live graphs. It also distinguishes directionality from the sibling yaaif_agent_spec_sync_to_objects by naming what that alternative does, making the tool's unique role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to prefer yaaif_agent_spec_sync_to_objects when applying Scenario-owned workflow_design onto catalog objects, giving an alternative with a clear condition. It does not enumerate other scenarios or edge cases where this tool should not be used, but the primary routing is handled well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_transitionA
Transition a Scenario lifecycle state. Active is rejected until readiness passes; use a separately authorized override only for exceptional cases.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| spec_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavior. It mentions the rejection behavior for Active, but does not disclose other validation rules (e.g., allowed transitions, handling of expected_version mismatch) or side effects. It is not contradictory, but leaves the agent guessing about error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence packs the purpose and a key constraint. It is front-loaded with the verb and resource. Could be slightly clearer with a second sentence on parameters, but it is appropriately short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state transition tool with no output schema and no annotations, more detail is needed. It covers the special Active case but not the general transition rules (e.g., which transitions are legal, what happens on conflict). The expected_version parameter hints at concurrency, but the description doesn't confirm that, leaving room for misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should explain parameters. It does not describe spec_id, expected_version, or status semantics beyond what the schema enum shows. It adds the lifecycle context but fails to explain the purpose of expected_version (optimistic locking) or the allowed status values' meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it 'Transitions a Scenario lifecycle state', which is a specific verb and resource. It also hints at a key constraint (Active rejected until readiness passes), but lacks differentiation from the many sibling state-related tools such as activation_override or adopt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear rule: 'Active is rejected until readiness passes; use a separately authorized override only for exceptional cases.' This implies when not to use the tool and points to an alternative (the override tool), but does not explicitly name it or cover other state transitions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_untracked_listB
Inventory untracked catalog objects discovered in observe/warn mode. Map selected objects explicitly before adoption; never auto-create a Scenario.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds meaningful context: objects are in observe/warn mode (not yet adopted) and the tool must 'never auto-create a Scenario,' which is a valuable side-effect guarantee for a listing operation. However, it does not describe what the inventory returns, how results are structured, or any filtering/pagination behavior beyond the limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler; the purpose is front-loaded and the safety caution earns its place. Minor deductions for unexplained domain jargon ('Scenario' capitalized without definition) and the slightly vague 'Map selected objects explicitly' directive, but overall the size and structure are appropriate for a simple list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description provides a solid start: scope, workflow placement, and a safety constraint. It is incomplete, though, because it never explains what the agent will receive back, what 'observe/warn mode' means, or how the limit parameter affects the result — and with no annotations, nothing else fills those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds nothing about the sole parameter 'limit.' The schema's numeric bounds (maximum 200, exclusiveMinimum 0) convey range but not meaning, and the description does not compensate by explaining that limit caps the number of returned untracked objects. For a low-coverage schema, the description was expected to carry the parameter semantics and did not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource — 'inventory untracked catalog objects' — and narrows the scope with 'discovered in observe/warn mode,' which distinguishes it from sibling tools like agent_spec_list (tracked specs), agent_spec_adopt, and agent_spec_untracked_resolve. The differentiation is inferable rather than explicit, and the workflow hint 'before adoption' reinforces which stage this tool belongs to, but it never names a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when the tool applies: untracked catalog objects found in observe/warn mode. It also provides workflow guidance — map selected objects explicitly before adoption — and an explicit prohibition ('never auto-create a Scenario'). It does not, however, name the alternative tool to use for mapping/adoption, so the routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_untracked_resolveB
Explicitly close an untracked inventory item as ignored or adopted. Adoption requires the Scenario id after its mapped bindings were reviewed.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | ||
| spec_id | No | ||
| object_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions 'close' (implying mutation) and a prerequisite for adoption, but it does not describe side effects (e.g., whether the item is removed, updated, or kept), reversibility, or any impact on related data. The tool's behavior beyond setting a state remains opaque, which is a significant gap for a mutation tool without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action is front-loaded, and the extra condition about adoption is presented succinctly. Every sentence contributes meaning, making it appropriately concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for an agent to safely invoke the tool. It lacks details on what happens after closing (no output schema), prerequisites for the 'ignored' state, how to obtain the Scenario id, and what object_id refers to. Given the tool's complexity and lack of annotations/output schema, the description leaves too many unanswered questions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explicitly map parameters. It hints that adoption requires a 'Scenario id' (likely spec_id), but does not confirm which parameter that is. object_id is not explained, and state is only described via the enum. With 0% schema coverage, the description should compensate by clarifying parameter roles, but it only provides a vague prerequisite hint, leaving most parameters ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: explicitly close an untracked inventory item, with two possible outcomes (ignored or adopted). It distinguishes from sibling tools like yaaif_agent_spec_untracked_list (listing) and yaaif_agent_spec_adopt (adopting) by framing it as the closure step for untracked items. It is specific enough for an agent to grasp the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one usage condition: adoption requires the Scenario id after mapped bindings are reviewed. This hints at when to use the 'adopted' state, but it does not explicitly explain when to use this tool versus alternatives like yaaif_agent_spec_untracked_list or yaaif_agent_spec_adopt. The workflow context (e.g., first list untracked items, then resolve them) is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_updateA
Update Scenario identity or segments using the version returned from its last read. Requirement and slot replacement is only allowed with replace_all=true; prefer granular tools.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| slots | No | ||
| status | No | ||
| spec_id | Yes | ||
| segments | No | ||
| description | No | ||
| replace_all | No | ||
| requirements | No | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the optimistic concurrency requirement ('using the version returned from its last read') and the replace_all restriction, which are important behavioral traits. However, it does not say whether omitted fields are left unchanged or cleared, what permissions are required, or what side effects occur beyond the update—gaps that matter for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the primary purpose and then immediately gives the most critical constraint and routing hint. Every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters, no annotations, and no output schema, yet the description covers only the concurrency check and the replace_all rule. It leaves ambiguous whether updates are partial or full replacement, how segments/requirements/slots arrays interact with existing data, and what the response contains. An agent would likely need to ask follow-up questions before first safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It explains expected_version ('version returned from its last read') and replace_all ('replacement is only allowed with replace_all=true'), but it does not clarify the semantics of name, description, status, segments, slots, or requirements beyond their property names. With 9 parameters and zero schema descriptions, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear verb-resource pair: 'Update Scenario identity or segments'. It distinguishes from the many sibling update tools by noting that requirement/slot replacement should be done with replace_all=true or via granular tools, so an agent can tell this apart from yaaif_agent_spec_update_segment or yaaif_agent_spec_upsert_slots. It does not enumerate all updatable fields (e.g., status, description), but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states a key usage condition: 'Requirement and slot replacement is only allowed with replace_all=true; prefer granular tools.' This tells an agent when to use this tool versus the granular sibling toolsardt. It also implies when to use it: when updating the scenario's identity or segments and when doing wholesale replacement with replace_all=true.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_update_segmentC
Update one Scenario segment (overview, architecture, workflow_design, benefits, …).
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| status | No | ||
| body_md | No | ||
| payload | No | ||
| spec_id | Yes | ||
| sort_order | No | ||
| segment_key | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Update', implying mutation, but does not mention optimistic concurrency via expected_version, validation rules, side effects, or what happens on version conflict. It also does not state whether partial updates are allowed or if all segment fields must be supplied. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the core action. It avoids fluff and is easy to parse. While it could benefit from a second sentence on versioning or parameters, it is not verbose. The conciseness is appropriate given the minimal scope, though more detail would improve it without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, 3 required, no output schema, no annotations), the description is severely incomplete. It does not explain what a segment is, enumerate valid segment keys beyond examples, clarify the role of expected_version, or describe the return value. An agent cannot safely call this tool based on the description alone; it would need to infer behavior from the schema or external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. However, it only lists example segment keys and does not describe spec_id, expected_version, segment_key, title, status, body_md, payload, or sort_order. The description adds no value over the bare schema parameter names, which are ambiguous without explanations. Required parameters like expected_version are not mentioned at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a single Scenario segment, listing example segment keys (overview, architecture, workflow_design, benefits). This is specific and distinguishes it from sibling tools like yaaif_agent_spec_update, which presumably updates the entire spec. The verb 'Update' and resource 'Scenario segment' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Siblings include yaaif_agent_spec_update, yaaif_agent_spec_upsert_slots, and others, but the description does not mention when to choose this segment-specific update over a whole-spec update or other operations. No exclusions or context for selection are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_upsert_requirementC
Create or update one typed requirement with acceptance criteria; preserves every other requirement and slot.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | Yes | ||
| requirement | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the operation preserves other requirements and slots, which is useful, but it does not explain side effects, expected_version semantics, error conditions, or what happens on conflict. For a mutation tool, this is insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action and a key guarantee. However, it is under-specified rather than concise in a helpful way; the brevity sacrifices necessary detail. Still, the structure is clean and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested requirement object, three required parameters, no output schema) and the absence of annotations, the description is grossly incomplete. It fails to explain versioning, the meaning of expected_version, the structure of acceptance criteria, or any failure modes. An agent would lack critical information needed to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not mention spec_id, expected_version, or the requirement object's fields beyond what the schema already defines. The description adds no semantic meaning to any parameter, leaving agents to guess at the role of expected_version and the structure of requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (create/update), resource (one typed requirement with acceptance criteria), and adds a specific detail (preserves every other requirement and slot). It distinguishes itself from sibling tools like upsert_slots or delete_requirement by its scope, but does not explicitly name alternatives. The purpose is unambiguous, though it could be sharper about when to choose this over similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention conditions, prerequisites, or contrasts with sibling tools such as yaaif_agent_spec_upsert_slots or yaaif_agent_spec_delete_requirement. It only states the action, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_upsert_slotB
Create or update one architecture slot and its requirement links without replacing the slot list.
| Name | Required | Description | Default |
|---|---|---|---|
| slot | Yes | ||
| spec_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It does mention the non-destructive aspect (without replacing the slot list), but fails to disclose optimistic concurrency behavior (expected_version), how requirement links are handled (replace vs. merge), or error conditions. Partial transparency only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and the key behavioral caveat. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested slot object with multiple fields, no output schema, and no annotations. The description leaves critical context unaddressed: what expected_version means, what constitutes a valid slot_key or kind, how requirement_keys are used, and the precise semantics of upsert. An agent would struggle to call this correctly based solely on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not explain any parameter meaning. The required parameters spec_id, expected_version, and slot are not mentioned, and nested fields like requirement_keys and kind remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states a specific verb (Create or update), resource (one architecture slot and its requirement links), and a key behavioral distinction (without replacing the slot list). This effectively differentiates it from upsert_slots (plural) and other slot-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a single-slot scope via 'one' and distinguishes from list replacement, but it does not explicitly state when to choose this tool over alternatives like yaaif_agent_spec_upsert_slots or yaaif_agent_spec_update. No conditions, exclusions, or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_spec_upsert_slotsA
Explicitly replace every architecture slot. Prefer yaaif_agent_spec_upsert_slot for normal edits.
| Name | Required | Description | Default |
|---|---|---|---|
| slots | Yes | ||
| spec_id | Yes | ||
| expected_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose the key trait: this is an explicit replacement operation, not a normal incremental edit. However, it does not clarify whether slots omitted from the input are deleted, whether the operation is atomic, or how expected_version gates the replacement. The word 'every' is informative but somewhat ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The actionable replacement behavior is front-loaded, and the alternative-tool guidance is a useful second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive bulk operation with three required parameters, nested slot objects, no annotations, no output schema, and no parameter descriptions. The description is sufficient for tool selection but not for safe invocation: an agent would not know the full replacement semantics, how expected_version works, or the required shape of each slot entry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no additional meaning for spec_id, expected_version, or slots. It repeats the concept of 'architecture slot' but does not explain how to populate the nested slot items, what kinds are valid, or the role of expected_version. This is a significant gap for a tool with undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Explicitly replace every architecture slot.' It clearly identifies the resource (architecture slots) and the bulk-replacement nature, and it distinguishes this tool from the singular yaaif_agent_spec_upsert_slot sibling. An agent can understand what this tool is for without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative tool and the condition under which to prefer it: 'Prefer yaaif_agent_spec_upsert_slot for normal edits.' This gives the agent an actionable routing rule and implies that this tool is for explicit, bulk replacement rather than routine edits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_agent_updateA
Update an existing agent (PUT). agent_type is immutable — omit it. skill_ids replaces mappings if provided.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| enabled | No | ||
| agent_id | Yes | ||
| skill_ids | No | ||
| description | No | ||
| goal_prompt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It does disclose meaningful behavioral traits: the operation is a PUT, agent_type is immutable, and skill_ids replaces existing mappings. However, it does not mention side effects, authorization requirements, response behavior, or whether omitted fields are preserved or reset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences contain no filler. The core purpose is front-loaded, and the critical caveats (PUT semantics, immutable agent_type, skill_ids replacement behavior) are packed efficiently into the second sentence. The description earns its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and no parameter descriptions, the tool needs more context to be safely invokable. The description does not cover return values, partial-update semantics, the need for agent_id, or relationship to create/get operations. It is a useful snippet but not a complete guide for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only explains skill_ids and mentions agent_type, which is not even present in the schema. The other params (name, enabled, agent_id, description, goal_prompt) receive no semantic explanation beyond their names. This leaves significant ambiguity for an agent invoking the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Update an existing agent') with an explicit HTTP method (PUT), which clearly identifies the tool's purpose. The word 'existing' distinguishes it from yaaif_agent_create, and the resource focus on agents separates it from agent_spec_update and other update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for updating already-created agents rather than creating new ones, but it never names alternatives like yaaif_agent_create or states explicit conditions for when to use this tool versus them. The guidance about omitting agent_type is useful, but the when-to-use guidance remains implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_agent_createC
Create an ambient agent config linked to a workflow agent.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| name | Yes | ||
| policy | No | ||
| enabled | No | ||
| spec_id | No | ||
| agent_id | Yes | ||
| slot_key | No | ||
| description | No | ||
| requires_approval | No | ||
| workflow_async_enabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the creation action and the relationship, but does not mention side effects, permission requirements, whether the operation is reversible, or any implications of creating an ambient agent config. For a create operation with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence without fluff, but given the complexity of the tool (10 params, nested objects), it is under-specified. It is efficiently structured but does not earn its place by providing sufficient context for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is completely inadequate for a tool with 10 parameters, a nested policy object, and no output schema. It does not explain what an ambient agent config is, how parameters relate, or what the expected behavior is. An agent cannot confidently use this tool based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no parameter descriptions. The tool description adds no meaning to any of the 10 parameters. It does not explain what 'mode', 'policy', 'slot_key', or 'requires_approval' mean, nor does it clarify that 'agent_id' is the workflow agent link. With zero coverage and no compensation, this is a critical deficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('ambient agent config') with the relationship 'linked to a workflow agent.' This distinguishes it from siblings like agent_create or ambient_workflow_create, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as ambient_workflow_create or agent_create. The description lacks any context about prerequisites, required setup, or conditions that would select this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_agent_getB
Get one ambient agent config by id.
| Name | Required | Description | Default |
|---|---|---|---|
| ambient_agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'Get' makes the read-only intent clear and no side effects are implied. With no annotations and no output schema, though, the description does not disclose error behavior (e.g., unknown id) or what the returned config actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence contains the essential verb, resource, and retrieval condition with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description provides enough to invoke the tool. It does not explain what an 'ambient agent config' is or describe the return format, which matters more because there is no output schema or annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only says 'by id' without naming or explaining the ambient_agent_id parameter beyond what the parameter name already conveys. It does not compensate for the missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get ... ambient agent config') and adds a retrieval condition ('by id'). It clearly states what the tool does, though it does not explicitly contrast it with sibling tools such as yaaif_agent_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by id' implies the tool is for retrieving a single config when the ID is already known, rather than listing or creating configs. However, there is no explicit when-to-use guidance or mention of alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_agent_listC
List ambient agent configs in the tenant.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'List', which implies a read-only operation, but does not state whether this is safe, what the return format is, whether pagination exists, or any side effects. No additional behavioral context is offered beyond the bare action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and front-loaded. However, it is too terse and omits essential information about parameters and behavior, making it under-specified rather than appropriately sized. It earns a middle score because it wastes no words but lacks substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no annotations, and no output schema, the description is inadequate. It does not explain how to use the q or limit parameters, what the default behavior is, or what the response contains. Even for a simple list operation, an agent would need at least basic guidance on parameter usage and expected output, which is entirely missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines two optional parameters (q and limit) with no descriptions, and schema description coverage is 0%. The description does not mention these parameters at all, nor does it explain their meaning, defaults, or how they affect results. This is a complete failure to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List), the resource (ambient agent configs), and the scope (in the tenant). This is specific and easily distinguished from sibling tools like yaaif_agent_list (which lists regular agents) and yaaif_ambient_agent_get (which retrieves a single config). The verb-resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or context. It does not mention that this is for ambient agent configs specifically versus other list tools, nor does it suggest alternatives. An agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_run_approveA
Approve an ambient run gate (agent-service). If managed by approval-service, use yaaif_approval_task_decide instead.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| run_id | Yes | ||
| decided_by | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Approve an ambient run gate', which merely restates the implied action. It does not mention side effects, state changes, permissions, reversibility, or consequences, leaving the agent to guess what approval triggers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The purpose is front-loaded, and the critical routing exception is included in the second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple approve action but still lacks essential context: no explanation of what a 'gate' is, what happens after approval, whether the action is reversible, or how the three parameters relate to the operation. Given no output schema and no annotation coverage, an agent would likely need to guess important details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides no information about run_id, note, or decided_by. The agent is given no hints about what these parameters mean, their format, or their optionality/requiredness beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Approve'), a precise resource ('ambient run gate'), and adds an execution context ('agent-service'). It also names the alternative tool yaaif_approval_task_decide, which clearly differentiates this tool from its sibling approval workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing guidance: 'If managed by approval-service, use yaaif_approval_task_decide instead.' This tells the agent when NOT to use this tool and names the alternative, satisfying the when-not/alternatives criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_run_getC
Get one ambient run by id.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the operation is a get, which implies a read, but says nothing about not-found behavior, access requirements, response shape, or any side effects. For a tool with zero annotation coverage, this is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler. It is front-loaded with the verb and object, and every word contributes to the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter retrieval tool, the description is minimally sufficient to make a basic call. However, it omits any context about what an ambient run is, what the response contains, and how this tool relates to the many nearby run-related siblings, leaving an agent with some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the sole parameter run_id is only typed as a string. The description's 'by id' adds little beyond the parameter name itself; it does not explain what kind of id, where to find it, or any formatting constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get'), a specific resource ('one ambient run'), and the identifying mechanism ('by id'). It is distinguishable from list-style siblings like yaaif_ambient_runs_list, though it does not explicitly differentiate itself from the similarly named yaaif_ops_ambient_run_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as yaaif_ambient_runs_list or yaaif_ops_ambient_run_get. The description implies a by-id lookup but provides no conditions, exclusions, or mention of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_run_pauseC
Pause an ambient run (agent-service).
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the action without mentioning side effects, state transitions, reversibility, or prerequisites like whether the run must be active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no waste. However, it is so terse that it lacks meaningful structure beyond a simple action statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one required parameter, no annotations, and no output schema. The description omits essential context such as the run lifecycle, how pause differs from stop, or how to resume. Given its simplicity, this is a significant gap for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning to the run_id parameter. It does not explain what run_id refers to, how to obtain it, or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Pause an ambient run' with a specific verb and resource. It distinguishes from siblings like resume/stop by the verb, but does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use pause vs. resume, stop, or other run control tools. The description lacks any context about the run lifecycle or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_run_rejectC
Reject an ambient run gate (agent-service).
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| run_id | Yes | ||
| decided_by | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden, but it only states the action ('reject'). It does not describe effects on the run, reversibility, required permissions, or whether note/decided_by are recorded as part of the rejection. The description is not misleading, but it is very thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the core action and contains no filler. It is appropriately sized for its content; the problem is under-specification, not verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description leaves the agent without usage guidance, parameter semantics, or behavioral detail. For a simple flat-schema tool it is minimally acceptable, but it is not complete enough for confident correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning for run_id, note, or decided_by. The parameter names are mildly self-explanatory, but the description does not compensate for absent schema documentation, so an agent must guess at their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('reject') and resource ('ambient run gate'), with the parenthetical 'agent-service' adding scope context. It is clear about what the tool does, but it does not explicitly differentiate itself from sibling tools like yaaif_ambient_run_approve, pause, or stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives such as approve, pause, resume, or stop. No conditions, prerequisites, or exclusions are mentioned, leaving the agent to infer usage purely from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_run_resumeC
Resume a paused ambient run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only says 'resume a paused ambient run' with no detail on side effects, state prerequisites (e.g., must already be paused), reversibility, or what happens if the run is not paused. For a state-changing operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clean sentence with no wasted words. It front-loads the action and resource, which is appropriate, but it is too sparse to be fully useful. It scores well on conciseness but suffers from under-specification rather than verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema and no annotations, the description is severely incomplete. An agent would have no idea what an 'ambient run' is, what run_id means, how to find it, or what the result of resuming will be. The description does not satisfy even basic context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (run_id) with only a type ('string') and no description. The tool description provides zero explanation of what run_id refers to, how to obtain it, or its format. With 0% schema coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('resume') and resource ('paused ambient run'), making the core action clear. It differentiates from siblings like pause, stop, approve, reject by the action itself, though it does not explicitly name any alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like yaaif_ambient_run_pause or yaaif_ambient_run_stop. The intended scenario (resuming a previously paused run) is implied by the name but not stated explicitly, and no prerequisites or preconditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_runs_listC
List ambient workflow runs.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| status | No | ||
| workflow_id | No | ||
| ambient_agent_id | No | ||
| ambient_workflow_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only reveals that the tool lists runs. It does not describe output format, ordering, pagination, default scope, or whether any side effects occur. The operation is implied to be read-only, but no supporting detail is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, punctuation-free phrase with no filler, so it is concise. However, for a tool with 6 undocumented parameters and no sibling differentiation, the one-line description is under-specified rather than appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low schema coverage, absent annotations, and missing output schema, the description is insufficient on its own. It conveys the basic list action but omits information an agent would need to choose filters or interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters have 0% schema description coverage and the description adds no meaning to q, limit, status, workflow_id, ambient_agent_id, or ambient_workflow_id. The description does nothing to compensate for the total absence of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'List ambient workflow runs.' This is a specific operation and is distinguishable at a high level from yaaif_ambient_run_get (single-run retrieval) and yaaif_ambient_workflow_list (workflow definitions). However, it does not explicitly differentiate from these siblings, and 'workflow runs' is slightly ambiguous given the parameter ambient_workflow_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not state when to use this tool versus yaaif_ambient_run_get, yaaif_ambient_workflow_list, yaaif_ops_ambient_run_get, or other run-related tools. There are no exclusions, prerequisites, or alternative routing cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_run_stopC
Stop an ambient run.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| run_id | Yes | ||
| decided_by | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only restates the action. It does not say whether stopping is terminal or reversible, whether it requires permissions, or what side effects it has on the ambient run or related workflows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The sentence is short, direct, and easy to parse, with the action front-loaded. However, it is so terse that it functions almost as a label rather than a useful definition, making this under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a lifecycle-mutating tool with three parameters, no annotations, no output schema, and a large set of sibling tools, the description is far too thin. It lacks parameter roles, preconditions, side effects, and any direction on when this tool is the correct choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage and the description names no parameters. The agent must infer that run_id identifies the target run and guess the meaning and format of note and decided_by, which the description does nothing to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'stop' with the resource 'ambient run', clearly identifying the operation. It also distinguishes itself from sibling tools like yaaif_ambient_run_pause, yaaif_ambient_run_resume, and yaaif_ambient_run_reject. However, it does not explain what 'stopping' means in terms of run lifecycle, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as pause or reject, nor any prerequisites or consequences. The description simply states the action with no contextual direction, which is the 'no guidance' case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_test_triggerC
Fire a test signal against an ambient workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| payload | No | ||
| entity_id | Yes | ||
| event_type | Yes | ||
| entity_type | Yes | ||
| workflow_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full disclosure burden. 'Fire a test signal' implies a mutating action, but it does not state side effects, whether a workflow run is created, whether it is safe to call in production, or how the signal propagates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tight sentence with no filler or repetition. It is efficient, though the brevity sacrifices explanatory power.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, four required, a nested payload object, no output schema, and no annotations, this one-line description is grossly insufficient. The agent cannot know what a successful call returns, what the payload shape should be, or what constraints apply to required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to any of the six parameters. The agent is left to infer semantics from property names alone, with no explanation of how workflow_id, event_type, entity_type, entity_id, source, or payload interrelate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Fire a test signal against an ambient workflow') and clearly identifies the target domain. It does not, however, distinguish itself from the closely named sibling yaaif_trigger_ambient_workflow, and 'test signal' is left as domain jargon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus yaaif_trigger_ambient_workflow or other ambient workflow/runtime tools. The description gives no context about testing scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_workflow_createB
Install an ambient workflow graph under an ambient agent. Omit workflow_graph to seed from the Agent Spec workflow_design segment when spec_id or a bound ambient agent is available.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| policy | No | ||
| enabled | No | ||
| spec_id | No | ||
| slot_key | No | ||
| description | No | ||
| trigger_rules | No | ||
| workflow_graph | No | ||
| ambient_agent_id | Yes | ||
| requires_approval | No | ||
| workflow_async_enabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does add one meaningful behavior: omitting workflow_graph triggers seeding from the Agent Spec workflow_design segment under certain conditions. However, it does not disclose side effects, whether an existing workflow is overwritten, permission requirements, default values for enabled or requires_approval, or what the response contains, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler, and the core purpose is front-loaded in the first sentence. The second sentence earns its place by explaining the key optional behavior. It is concise, though the heavy use of domain-specific terms like 'Agent Spec workflow_design segment' makes it dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, nested objects, no output schema, and no annotations, the description is not complete enough for an agent to invoke the tool confidently. It explains only the workflow_graph/spec_id seeding path and leaves required parameter semantics, policy/trigger_rules structure, defaults, and post-install behavior unexplained. The tool is more complex than the description accommodates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for 11 undocumented parameters. It adds useful meaning for workflow_graph and spec_id by explaining the seeding relationship, and it indirectly references ambient_agent_id. But it leaves name, policy, enabled, slot_key, description, trigger_rules, requires_approval, and workflow_async_enabled without any semantic guidance, which is a substantial gap for a tool with this many parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Install an ambient workflow graph') and a target ('under an ambient agent'), which clearly identifies this as a creation/installation tool. It is distinguishable from sibling tools like yaaif_ambient_workflow_get, yaaif_ambient_workflow_list, and yaaif_ambient_workflow_update by the verb 'install' and the notion of creating a graph. However, it relies somewhat on domain jargon ('ambient workflow graph') and does not explicitly contrast with the update sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage condition for one parameter path: omit workflow_graph to seed from the Agent Spec workflow_design segment when spec_id or a bound ambient agent is available. This gives partial guidance on when to use the seeding behavior. It does not, however, say when to choose this tool over alternatives such as yaaif_ambient_workflow_update or yaaif_trigger_ambient_workflow, so the tool-selection guidance is mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_workflow_getB
Get an ambient workflow by id.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It only says 'Get', which implies read-only, but it does not state what is returned, how errors such as not-found are handled, whether any permissions are required, or if there are side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler. Every word contributes to stating the tool's purpose, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's low complexity, there is no output schema and no annotations, so the description should clarify what the caller receives and any important behavioral caveats. It only states the action, leaving the return value, error behavior, and relationship to sibling tools to be inferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but there is only one required parameter with a self-explanatory name. The description's 'by id' aligns with the workflow_id property, providing minimal confirmation of its meaning. It does not specify format, examples, or where the id comes from, but this is sufficient for a single simple string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get'), a resource ('ambient workflow'), and a selection criterion ('by id'). This clearly distinguishes it from sibling list tools like yaaif_ambient_workflow_list and from yaaif_ambient_run_get, which targets runs rather than workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as yaaif_ambient_workflow_list or yaaif_ambient_run_get. There is no mention of prerequisites, when a single workflow lookup is appropriate, or how this relates to workflow management workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_workflow_listC
List ambient workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| ambient_agent_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden, but 'List' only restates the verb already present in the tool name. It does not disclose whether q and ambient_agent_id filter results, whether pagination or limits apply, or whether any auth/session requirement exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with no fluff, but it is under-specified rather than economically complete. One sentence is not enough when the schema gives no parameter documentation and the sibling list creates ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, a minimal description could be acceptable if the schema documented q and ambient_agent_id, but it does not. With no annotations, no output schema, and a duplicate-sounding sibling, the agent lacks enough context to call or interpret the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; neither q nor ambient_agent_id has a schema description. The tool description adds no meaning for either parameter, leaving their semantics entirely unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the action (list) and resource (ambient workflows), so the core purpose is clear. However, it does not distinguish this tool from the near-identical sibling yaaif_list_ambient_workflows, or clarify whether it returns workflow definitions rather than runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to choose this over yaaif_ambient_workflow_get, yaaif_ambient_runs_list, or yaaif_list_ambient_workflows. There are no preconditions, exclusions, or notes on optional filtering. The agent must infer the usage context entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ambient_workflow_updateC
Update an ambient workflow graph / metadata, including ambient agent assignment.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| policy | No | ||
| enabled | No | ||
| description | No | ||
| workflow_id | Yes | ||
| trigger_rules | No | ||
| workflow_graph | No | ||
| ambient_agent_id | No | ||
| requires_approval | No | ||
| expected_updated_at | No | ||
| workflow_async_enabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'update' and mentions graph/metadata and agent assignment. It does not reveal whether updates are partial or full replacements, whether fields are reset, whether concurrency protection (like expected_updated_at) matters, if any destructive side effects occur, or what the caller needs to know before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear, front-loaded sentence with no wasted words. It is appropriately compact, though it sacrifices informative detail; still, conciseness itself is strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with 11 parameters, nested objects, no output schema, and no annotations, this description is far from complete. It identifies the resource and a couple of update categories but omits semantics for most parameters, update behavior, preconditions, and return values, so an agent cannot reliably invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 11 parameters, and the description adds minimal meaning beyond the property names. It only hints that workflow_graph and ambient_agent_id are relevant; it does not clarify policy, trigger_rules, requires_approval, expected_updated_at, workflow_async_enabled, or the rest, leaving the agent to guess their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') plus a clear resource ('an ambient workflow graph / metadata') and highlights the particularly relevant 'ambient agent assignment' behavior. It is distinguishable from create/get/list siblings by the verb and resource, though it doesn't explicitly name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives like yaaif_ambient_workflow_create or yaaif_ambient_workflow_get. The description only states what the tool does; it does not explain when an update is appropriate, whether the workflow must already exist, or when create/list should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_api_key_bind_deploymentA
Bind an API key Credentials record to an MCP deployment secret_env as YAAIF_MCP_PLATFORM_API_KEY (process fallback for ambient/desktop). Optionally redeploy so the pod picks up the env. Prefer this over putting platform S2S into MCP pods.
| Name | Required | Description | Default |
|---|---|---|---|
| env_name | No | ||
| redeploy | No | ||
| credential_id | Yes | ||
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It does disclose the exact environment variable set, the optional redeploy behavior, and why redeploy is useful. However, it does not mention permissions, idempotency, whether existing secret_env values are overwritten, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, then the optional redeploy detail, then the usage preference. No filler or repetition; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives enough to attempt the core bind operation, but with no output schema and no annotations, it leaves gaps around env_name semantics, conflict behavior, required-versus-optional parameters, and side effects. Adequate but not complete for safe autonomous invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only implies credential_id and deployment_id and mentions optional redeploy. The env_name parameter is unexplained, and no parameter names are mapped to their roles or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action ('Bind an API key Credentials record to an MCP deployment secret_env') with a specific target and exact environment variable name (YAAIF_MCP_PLATFORM_API_KEY). This clearly differentiates it from the many sibling CRUD tools for API keys and deployments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context on when this is appropriate: it is a process fallback for ambient/desktop and should be preferred over putting platform S2S into MCP pods. It does not explicitly name alternative sibling tools or list cases where another tool should be used instead, so it falls short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_api_key_createA
Create a scoped API key for MCP/downstream platform access. Plaintext is returned once — bind via yaaif_api_key_bind_deployment or skill field_map; do not inject platform S2S into MCP pods. Prefer least-privilege scopes (e.g. context_store:read/write).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scopes | Yes | ||
| allowlists | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavioral traits. It discloses the critical one-time plaintext return ('Plaintext is returned once'), which is essential for an agent to handle the response correctly. It also implies scoped access but does not mention other behaviors like idempotency or side effects. The plaintext warning adds substantial value beyond the obvious 'create' action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The main purpose is front-loaded, and the second sentence packs essential security and binding context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, a critical return-value behavior, and usage guidance, but the parameter semantics gap (especially allowlists) leaves the tool incomplete for an agent. No output schema exists, so the description could have explained the return shape beyond the plaintext note. Overall decent but not fully complete for a creation tool with a nested parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for missing parameter documentation. It gives a hint about 'scopes' through the example 'context_store:read/write' and the least-privilege recommendation, but it does not explain the 'name' parameter or the nested 'allowlists' object at all. This leaves two of three parameters functionally undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Create a scoped API key') and the intended use case ('for MCP/downstream platform access'). It clearly distinguishes itself from sibling API key tools (list, get, update, rotate, delete, bind_deployment) by focusing on creation and mentioning binding separately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context and actionable guidance: it names the binding next step (yaaif_api_key_bind_deployment), warns against a risky pattern (injecting platform S2S into MCP pods), and recommends least-privilege scopes with an example. It does not explicitly state when NOT to use this tool relative to alternatives, but the guidance is specific and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_api_key_deleteA
Delete (revoke) an API key and its linked Credentials record when present.
| Name | Required | Description | Default |
|---|---|---|---|
| key_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the cascading deletion of the linked Credentials record, which is valuable, but it does not state that the action is irreversible, mention permission requirements, or describe what happens to bindings/deployments associated with the key.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero filler, and the most important behavior is front-loaded. The conditional side-effect is stated compactly without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete tool, the core behavior is stated, but without an output schema or annotations, an agent still lacks information about success/error responses and irreversibility. The source of key_id is also left to inference from sibling tool names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions key_id. The parameter name is self-explanatory, but the description adds no guidance on how to obtain the ID (e.g., from api_key_list) or any format expectations, so it fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Delete (revoke)' and identifies the resource (API key) plus a notable side-effect (linked Credentials record). It clearly distinguishes this from api_key_rotate, api_key_update, and other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the delete/revoke semantics and the caution about the linked Credentials record, but no explicit when-to-use or when-not-to-use guidance is given. The agent is not directed to alternatives like rotate for cases where the key should be replaced rather than permanently removed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_api_key_getA
Get one tenant API key by id (metadata only; plaintext is never retrievable).
| Name | Required | Description | Default |
|---|---|---|---|
| key_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a critical behavioral trait: only metadata is returned and plaintext is never retrievable, which prevents an agent from expecting the actual key. It does not state side effects (likely none) or error behavior, but the key limitation is clearly highlighted, exceeding the baseline for a simple get operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and scope, then adds a crucial limitation. There is no wasted wording, and every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id with one parameter, the description covers the essential information: what to provide (key_id) and what to expect (metadata, no plaintext). It does not describe the exact structure of the metadata or error cases, but given the absence of an output schema, this is a minor gap. The uniqueness of the plaintext constraint is highlighted, making the tool effectively complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for key_id (coverage 0%), so the description must compensate. The phrase 'by id' implicitly defines key_id as the identifier of the API key, which is sufficient given the single parameter. However, it does not elaborate on format, constraints, or examples, providing only minimal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Get one tenant API key by id'. It specifies the resource (tenant API key) and the scope (one by id), and distinguishes itself from list/create/update/delete siblings. The additional note 'metadata only; plaintext is never retrievable' further differentiates it from any tool that might expose secrets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call when you have a specific key_id and need its metadata. However, it does not explicitly mention alternatives or when not to use it, such as 'for listing all keys, use yaaif_api_key_list'. The guidance is implied rather than explicit, which is adequate but not outstanding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_api_key_listA
List tenant API keys (scoped ymp- credentials for MCP/downstream → platform APIs). Returns known scopes vocabulary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful behavior: the operation returns "known scopes vocabulary" and clarifies the keys are tenant-scoped ymp- credentials, but it does not explicitly state that this is read-only or describe the response shape/pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences carry the resource scope, credential type, destination, and return content with no filler. The core action is front-loaded, and every clause adds meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool, the description covers what is listed, the nature of the credentials, and the high-level return content. It does not detail the output structure or mention pagination/tenant selection, but complexity is low and no output schema exists to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description still adds semantic context by explaining what the listed keys are and that scopes vocabulary is part of the returned information, which helps an agent interpret results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: "List tenant API keys" and adds clarifying context by calling them "scoped ymp- credentials for MCP/downstream → platform APIs". This clearly separates it from sibling key operations like yaaif_api_key_get, yaaif_api_key_create, and yaaif_api_key_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: this is the list/enumerate operation for tenant API keys, distinguishable from get/create/update/delete siblings. However, it does not explicitly say when to prefer this tool over yaaif_api_key_get or mention any prerequisites such as needing an active tenant context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_api_key_rotateA
Rotate an API key. Keeps the same Credentials credential_id (bindings stay valid). Plaintext returned once; previous hash remains valid for a short grace window.
| Name | Required | Description | Default |
|---|---|---|---|
| key_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses critical traits: plaintext is returned only once, the previous hash remains valid for a grace window, and the credential_id is preserved. These details go beyond the schema and genuinely help an agent handle the operation correctly (e.g., capturing the plaintext immediately).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, followed by essential behavioral caveats. No filler, every sentence earns its place. The structure leads with the action, then the critical nuances.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool without an output schema, the description covers the key operational details: the one-time plaintext return, the grace period, and bindings stability. It does not describe the exact return format, but that is not strictly required given the explicit mention of plaintext being returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does not explicitly describe key_id, but the tool name and purpose make it obvious that key_id identifies the key to rotate. The description adds no format or constraints, but for a single obvious parameter this is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource pair ('Rotate an API key') and immediately differentiates from sibling operations (create/update/delete) by noting that the same credential_id is kept and bindings stay valid. This clearly tells an agent what the tool does and how it differs from other API key operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case (rotate while preserving bindings) but does not explicitly state when to prefer this over delete+create or name alternatives. It provides context but no explicit exclusions; an agent must infer that this is the right choice when continuity of bindings matters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_api_key_updateC
Update API key name, scopes, allowlists, or enabled flag.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| key_id | Yes | ||
| scopes | No | ||
| enabled | No | ||
| allowlists | No | ||
| clear_expiry | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Update', implying mutation, but doesn't describe side effects, idempotency, whether updates are partial or full replacements, authorization requirements, or the impact on existing scopes/allowlists. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the action and lists key fields. It is efficient with no filler words. The structure is clear and easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, nested allowlists object, no output schema, no annotations), the description is too sparse. It doesn't explain the required key_id, the effect of partial updates, the semantics of clear_expiry, or any potential errors. An agent would lack essential context to call this tool correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain the purpose of name, scopes, allowlists, and enabled flag by naming them, but it omits clear_expiry entirely and provides no semantics for how allowlists are structured or how the update behaves (e.g., merge vs replace). The required key_id is also not mentioned. The description adds some value but is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Update) and resource (API key) and lists several updatable fields (name, scopes, allowlists, enabled flag). It distinguishes from siblings like create, rotate, delete, and bind_deployment. However, it omits the 'clear_expiry' parameter, which is part of the schema, and doesn't explicitly mention that this operates on an existing key, though that is implied by 'update'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create, rotate, or delete. There are no explicit exclusions or conditions. The description implies use for modifying existing keys, but it doesn't state when not to use it or direct the agent to a more appropriate sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_approval_inbox_listC
List approval inbox tasks (approval-service).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status_scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It only says 'List' without disclosing read-only nature, pagination behavior, or any side effects. No behavioral details are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundant wording. It is front-loaded with the verb and resource, making it appropriately concise for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description should clarify what is returned, default behaviors, and parameter semantics. None of that is present, leaving the agent with insufficient information to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any of the three parameters (limit, offset, status_scope) at all. It adds no meaning beyond the raw schema, failing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('approval inbox tasks'), with a domain hint ('approval-service'). It is distinct from sibling tools like claim/decide/strategy, so an agent can easily identify its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any mention of parameters like limit, offset, or status_scope that would affect usage. There are no exclusions or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_approval_strategies_listC
List approval strategies (approval-service).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral details. It only states the action and resource, omitting any information about pagination behavior, default limits, or whether the list is scoped to the current tenant. This is a significant gap for a list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is appropriately concise and front-loaded. It conveys the core purpose without any wasted words, which is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool references 'approval-service' and has pagination parameters, the description is incomplete. It lacks return format details, pagination semantics, and any contextual hints about the approval strategies domain. An agent would need more to use this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description does not mention the 'limit' and 'offset' parameters at all. The agent cannot infer that these are for pagination, and despite the parameters being optional with no enums, the description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('approval strategies'), which distinguishes it from the sibling tools like yaaif_approval_strategy_get and yaaif_approval_strategy_create. It is concise and unambiguous, though it does not explicitly differentiate from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a list of approval strategies, which is clear from the verb 'List'. However, it does not specify when to use this over the get, create, or publish sibling tools, nor does it mention any prerequisites (e.g., required authentication or tenant context). It provides minimal context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_approval_strategy_createC
Create an approval strategy (draft). Optionally publish version 1. Use for ambient Linear+approval graphs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| publish | No | ||
| spec_id | No | ||
| priority | No | ||
| slot_key | No | ||
| definition | No | ||
| description | No | ||
| object_type | No | ||
| spec_version | No | ||
| approver_email | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only hints at behavior ('draft' and 'Optionally publish version 1') but omits side effects, authentication requirements, reversibility, and the nature of the response. For a create operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and leads with the core purpose, but it is under-specified for a complex tool. While it avoids fluff, the brevity comes at the cost of essential guidance, making it less effective than a moderately detailed description would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (10 parameters, nested objects, no output schema, no annotations), the description is severely incomplete. It does not mention parameters, return values, side effects, or when to use this versus other approval strategy tools. An agent would be left guessing on most operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 10 parameters (e.g., spec_id, slot_key, definition). The only param reference is 'publish' indirectly via 'Optionally publish', but its name and type are not clarified. The description adds no value beyond the raw schema, which is inadequate for a tool with this many parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Create an approval strategy'. It also differentiates from siblings by mentioning 'Optionally publish version 1', which implies a separate publish tool (yaaif_approval_strategy_publish) exists. This makes the purpose unambiguous and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage context ('Use for ambient Linear+approval graphs') but lacks explicit guidance on when not to use it or how it contrasts with alternatives like the publish tool. It does not mention that this should be used for drafts and the publish tool for publishing, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_approval_strategy_getA
Get one approval strategy by id.
| Name | Required | Description | Default |
|---|---|---|---|
| strategy_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. 'Get' suggests a read-only operation, but the description does not disclose not-found behavior, permissions, or return payload characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word adds value: 'Get', the resource, and the retrieval key are all present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter get operation, the tool is minimally usable: an agent can infer strategy_id and that a strategy should be returned. However, with no output schema and no annotations, the description could more explicitly state what is returned or what happens when the id does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only includes a required string parameter strategy_id, and schema description coverage is 0%. The description's 'by id' clarifies the parameter's role but adds no format, source, or validation details beyond what the schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get one approval strategy by id.' This clearly distinguishes it from siblings like yaaif_approval_strategies_list, which retrieves multiple strategies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by id' implies this tool is for fetching a single known strategy, but it does not explicitly state when to prefer it over listing strategies or describe any exclusions or alternatives. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_approval_strategy_publishC
Publish an approval strategy version (required before ambient graphs resolve it).
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | ||
| strategy_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that publishing is a prerequisite for ambient graph resolution, which is useful, but it doesn't state whether publishing is idempotent, whether it overwrites an existing published version, whether it triggers side effects, or what happens if the version is already published. For a state-changing operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste. The core action is front-loaded and the prerequisite context is packed into a parenthetical. It earns its place, though it could add a bit more behavioral detail without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a publish/mutation tool with no annotations, no output schema, and 0% parameter coverage, the description is too thin. An agent doesn't know the effect of publishing, whether it's reversible, what the response is, or how version interacts with the operation. The prerequisite hint is valuable but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It doesn't explain what 'version' means (e.g., is it required? what if omitted? does it default to latest?) or what format strategy_id takes. The description adds no parameter-level meaning beyond the bare schema property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Publish') and resource ('approval strategy version'), and adds a meaningful prerequisite ('required before ambient graphs resolve it'). This distinguishes it from related tools like yaaif_approval_strategy_create and yaaif_approval_strategy_get, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'required before ambient graphs resolve it' implies when this tool should be used, but it doesn't explicitly state when not to use it or name alternatives. The context is clear enough for an agent to infer the publish step follows creation, but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_approval_task_claimC
Claim an approval inbox task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing side effects, permissions, or reversibility. 'Claim' implies a mutation, but the description gives no indication of what happens after claiming, whether it can be undone, or any constraints. This is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the action and object, which is structurally sound. However, it is so terse that it borders on under-specification, but conciseness itself is not the issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It does not explain success/failure behavior, error conditions, or preconditions. The tool is simple (one param), but an agent still needs to know if claiming has side effects, whether tasks can be unclaimed, or what happens if the task is already claimed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single parameter (task_id) with no description, and schema coverage is 0%. The description does not mention task_id at all, nor explain where it comes from, its format, or its meaning. The tool description provides zero assistance in understanding the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Claim') and a specific resource ('an approval inbox task'), making the tool's purpose unambiguous. It distinguishes itself from sibling tools like yaaif_approval_task_decide and yaaif_approval_inbox_list by naming the action directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical workflows, or relationships to sibling tools like 'decide' or 'list'. An agent is left to infer when claiming is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_approval_task_decideC
Decide an approval task (approve|reject|request_clarification|send_back).
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | ||
| comment | No | ||
| task_id | Yes | ||
| decision | Yes | ||
| claim_first | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden, but it only states the action and allowed decisions. It does not mention that this is a state-mutating operation, any required permissions, whether claims are involved, idempotency behavior, or the effects on the task. This is a significant gap for a decision tool that will alter the approval task's state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with the key action and allowed values front-loaded. It is efficient and easy to parse, but its brevity sacrifices necessary detail, making it under-specified rather than effectively concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has six parameters, two required, no output schema, and no annotations, the description is far from complete. It does not explain the tool's role in the approval workflow, the impact of optional parameters, or any prerequisites. An agent would struggle to decide and invoke this tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does enumerate the possible values for the 'decision' parameter, which adds value for that field. However, it offers no explanation for the other parameters (channel, comment, claim_first, idempotency_key) and does not even highlight that task_id and decision are required, leaving the agent without crucial parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Decide' and the resource 'approval task', and enumerates the allowed decision types (approve, reject, request_clarification, send_back). This gives an agent a precise idea of what the tool does. However, it does not differentiate from sibling tools like yaaif_approval_task_claim or yaaif_ambient_run_approve, so it is not fully distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention that it is for deciding an approval task that has been claimed or that it is distinct from claiming or other approval actions. No when-not-to-use or alternative references are provided, leaving the agent to infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_catalog_overviewB
Read-only snapshot of the current tenant: agents, skills, MCP tools/servers/deployments, desktop tool packages, API keys, deployment settings status, ambient agents/workflows, local tools, file registry lifecycle (paginated summaries).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states 'read-only' and 'paginated summaries,' which conveys core safety and output shape. However, it omits important behavioral details such as payload size, rate limiting, and whether the snapshot contains full objects or only summaries, which is critical for a tool that touches so many resource types.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the most important information ('Read-only snapshot') and lists all relevant resource categories without redundancy. It is long but every element is informative, so it earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's broad scope, two undocumented optional parameters, no output schema, and no annotations, the description is incomplete. It lists the resource categories but does not describe the returned structure, explain the parameters, or route to specific list tools for details. An agent would still be uncertain about the exact output and how to filter it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of what 'q' or 'limit' mean. The only hint is 'paginated summaries,' which could relate to 'limit,' but that is not explicit. With zero parameter semantics in both schema and description, agents have no way to know how to use these parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('snapshot') and the exact resource ('current tenant') with a detailed enumeration of included categories (agents, skills, MCP deployments, API keys, etc.). This clearly distinguishes it from the many single-resource sibling list tools and leaves no ambiguity about the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for a broad overview across multiple resource categories, but it does not explicitly say when to use it versus the many specific list tools (e.g., yaaif_agent_list, yaaif_skill_list). No conditions or exclusions are stated, and there is no alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_configure_checkB
Validate platform profile, OIDC discovery, auth session, and service reachability.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does state the specific validation behaviors (platform profile, OIDC discovery, auth session, service reachability), which is useful. However, it does not disclose whether the check is purely read-only, what output it returns, or how failures are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that lists the checked components without filler words. Every phrase adds informational value, and the sentence is easily scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters and no output schema, but it is a diagnostic-style tool. The description covers the scope of checks but omits what the result looks like, how the agent should interpret success/failure, and whether calling it has any session or side effects. Adequate for zero-param invocation, but incomplete for using the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there are no parameter semantics for the description to explain. The baseline of 4 applies here because the description does not need to compensate for undocumented parameters; the schema is complete and empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Validate') and enumerates the exact resources being checked: platform profile, OIDC discovery, auth session, and service reachability. This goes well beyond the name and makes the tool's scope clear, though it does not explicitly distinguish itself from similar diagnostics like yaaif_doctor or yaaif_ensure_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention common scenarios, prerequisites, exclusions, or related tools such as yaaif_doctor or yaaif_ensure_session, leaving the agent to infer appropriate usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_deployment_settings_getA
Read tenant deployment-service settings (default method, compose/k8s/gitops knobs). Read-only — configure GitOps/kube in Admin UI.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does state 'Read-only', which is a key trait, and clarifies that configuration happens elsewhere. However, it doesn't describe error behavior, output format, or any side effects beyond being read-only. For a zero-parameter get, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero fluff. The purpose is front-loaded, and the read-only note is placed immediately after. Every part earns its place, making it highly concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description provides adequate context: it states what is read and that it's read-only. It doesn't detail the return fields, but the mention of 'default method, compose/k8s/gitops knobs' gives an agent a reasonable expectation. It is distinct from the status sibling and sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters and schema coverage is 100%, so there are no parameters to explain. The baseline for 0 parameters is 4, and the description adds no unnecessary parameter details. It correctly focuses on the resource and scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Read') and resource ('tenant deployment-service settings'), and specifies the content ('default method, compose/k8s/gitops knobs'). This distinguishes it from the sibling 'yaaif_deployment_settings_status' which likely reports status rather than settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is read-only and configuration should be done via Admin UI. This tells the agent when to use this tool (for reading only) and implicitly that alternatives (like configuration tools) exist, though it doesn't name specific sibling tools for configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_deployment_settings_statusA
Preflight deployment-service health (docker / kubernetes / gitops / agent / api-server). Call before kubernetes_gitops deploy; require gitops healthy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden for behavioral disclosure. The word 'Preflight' implies a non-destructive read-only health check, and the component list adds useful scope, but it does not state side effects, what happens if gitops is unhealthy, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. The core purpose comes first, and the usage condition follows immediately, making every word earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter health check, the description adequately identifies the components checked and the deployment context in which to call it. A note on the expected return shape would make it fully complete, but the low complexity keeps the gap minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and full schema coverage, so the baseline is 4. The description adds no parameter details because none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Preflight' as a verb and names the resource: deployment-service health across docker, kubernetes, gitops, agent, and api-server. It is clear and distinct from yaaif_deployment_settings_get, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Call before kubernetes_gitops deploy; require gitops healthy.' This provides clear context but does not mention when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_skill_mapping_deleteC
Delete desktop worker↔skill mapping for a skill id.
| Name | Required | Description | Default |
|---|---|---|---|
| skill_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden of behavioral disclosure. It only says 'Delete', which implies destructive action, but does not disclose side effects, reversibility, error behavior on missing skill_id, or permission requirements. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no fluff. It is appropriately sized for a simple delete operation, though it omits necessary context. Conciseness itself is good, but the content is too sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete tool with no annotations, output schema, or parameter description, the description is incomplete. It fails to explain effects on worker mappings, any prerequisites, or expected results. An agent could call it incorrectly without knowing whether the mapping must exist or what happens on failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining the parameter. It only repeats the parameter name ('skill id') without adding any meaning, format, or constraints. The description adds no value beyond the schema's property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Delete) and the resource (desktop worker↔skill mapping) and specifies it's for a skill id. It is specific enough to distinguish from list and set operations, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool, what constitutes a prerequisite (e.g., existing mapping), or how it relates to sibling operations like yaaif_desktop_skill_mapping_set or yaaif_desktop_skill_mappings_list. No when/when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_skill_mapping_setB
Replace worker ids mapped to a desktop skill (control-plane PUT). Optionally trace this external dependency to a Scenario slot; attach evidence/attestation before activation.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | No | ||
| skill_id | Yes | ||
| slot_key | No | ||
| worker_ids | Yes | ||
| spec_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that this is a 'control-plane PUT', implying an idempotent full replacement of worker ids. It also mentions 'before activation', hinting at a governance workflow. However, it does not describe side effects (e.g., removal of unlisted mappings), permission requirements, reversibility, or response behavior. Some useful context is given, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the primary action front-loaded. The optional tracing/evidence guidance is secondary and placed after the core purpose. Minor jargon ('control-plane PUT') could be clearer, but overall it is efficient and not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is not complete enough for an agent to call the tool confidently. It fails to explain spec_id and spec_version, does not mention what the response contains, and includes a workflow hint ('before activation') without concrete steps or parameter linkage. An agent would likely need to consult external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the core parameters: worker_ids are the ids to replace, skill_id is the desktop skill, and slot_key is a Scenario slot for optional tracing. However, spec_id and spec_version are completely unexplained, and 'attach evidence/attestation' does not map to any declared parameter. Partial compensation, but not enough for a 5-parameter tool with no schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Replace worker ids mapped to a desktop skill (control-plane PUT)'. This is a specific verb+resource combination that distinguishes it from siblings like yaaif_desktop_skill_mappings_list (read-only) and yaaif_desktop_skill_mapping_delete (removal). The parenthetical 'control-plane PUT' reinforces the semantics of a full replacement operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as yaaif_skill_map_agents_merge (which suggests additive mapping) or yaaif_desktop_skill_mapping_delete. The description only states what the tool does, not when to choose it over siblings. There are no conditions, prerequisites, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_skill_mappings_listB
List desktop worker↔skill mappings (control-plane).
| Name | Required | Description | Default |
|---|---|---|---|
| skill_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. 'List' implies a read-only operation and 'control-plane' hints at management scope, but the description does not explicitly state side-effect freedom, whether results are filterable by skill_id, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes to identifying the operation and its domain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description leaves the optional skill_id filter entirely unexplained and provides no output or behavioral context. An agent can list all mappings with no arguments, but cannot correctly use the optional parameter or fully judge the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, skill_id, is completely undocumented in both the schema and the description. With 0% schema description coverage, the description needed to explain that this parameter filters mappings by skill, but it never mentions it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('desktop worker↔skill mappings'), and the parenthetical 'control-plane' adds domain context. It is clearly distinct from sibling tools like yaaif_desktop_skill_mapping_set and yaaif_desktop_skill_mapping_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as yaaif_desktop_workers_list or yaaif_skill_map_agents. The word 'List' implies a read operation, but there is no explicit context, exclusions, or mention of related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_deleteA
Remove a command-based MCP tool package (and its platform archives) from the Package Registry.
| Name | Required | Description | Default |
|---|---|---|---|
| package_id | Yes | Package UUID or tool_key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose the core destructive effect: the package and its platform archives are removed from the registry. However, it does not state whether the operation is irreversible, whether installed packages are also uninstalled, or what permissions are required. This is adequate but incomplete for a delete operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. The parenthetical 'and its platform archives' adds meaningful destructive scope without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete operation, the description names the target and the deletion scope precisely. But with no annotations and no output schema, it leaves important side effects unstated, such as whether the package remains installed on workers, whether deletion is reversible, and what happens to dependent configurations. This is usable but not fully complete for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents package_id as 'Package UUID or tool_key' with 100% coverage, so the description does not need to repeat the parameter format. The description adds no extra meaning beyond the schema, such as where to find the tool_key or how to resolve a package_id, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and identifies the resource as a 'command-based MCP tool package' with scope 'from the Package Registry.' This clearly states what the tool does and how it differs from install/uninstall operations. However, it does not explicitly name or contrast a sibling tool such as uninstall, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'from the Package Registry' qualifier implies this is the tool for removing a package at the registry level, providing minimal usage context. But there is no explicit guidance about when not to use it, no prerequisites, and no pointer to sibling tools like uninstall for removing packages from a desktop worker. Usage context is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_getB
Get one desktop tool package by id (UUID) or tool_key (e.g. sap-gui.mcp).
| Name | Required | Description | Default |
|---|---|---|---|
| package_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are none, so the description must carry behavioral disclosure. It only says 'Get', which implies a read operation, but does not explicitly state read-only nature, error handling, or that it returns full package details. This is a gap for a tool with no annotation safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no waste. It includes the essential identification options and an example, making it efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get with one parameter and no output schema, the description is adequate but could mention that it is a read-only operation and what the return contains. It does not discuss failure cases or relationship to list/inspect, leaving some context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value by explaining that package_id can be a UUID or a tool_key (with example), compensating for the 0% schema coverage. This helps the agent format the parameter correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get' and resource 'desktop tool package', and specifies identification by id (UUID) or tool_key with an example. It is distinct from list operations, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like yaaif_desktop_tool_packages_list or yaaif_desktop_tool_package_inspect. It implies usage when you have a specific id/key but does not state exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_inspectA
Inspect a local command/stdio MCP codebase and propose Package Registry metadata + archive plan. Does not upload. Reads optional yaaif-tool-package.json.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | ||
| platform | No | ||
| tool_key | No | ||
| entrypoint | No | ||
| source_dir | Yes | Absolute path to a command/stdio MCP codebase. | |
| description | No | ||
| interpreter | No | ||
| capabilities | No | ||
| command_args | No | ||
| display_name | No | ||
| env_template | No | ||
| artifact_path | No | Optional prebuilt archive or executable (zip/tar.gz/exe/js). | |
| git_commit_sha | No | Optional git commit SHA for this package version. | |
| git_remote_url | No | Optional remote git URL for this package version. | |
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose two meaningful behaviors: 'Does not upload' and 'Reads optional yaaif-tool-package.json'. Still, it does not state whether the codebase is modified, what kind of plan is returned, or whether any network access occurs beyond the upload disclaimer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the most important scoping constraint ('Does not upload') is front-loaded. Every phrase contributes either to purpose, location, or behavioral boundaries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 15-parameter tool with no annotations, no output schema, and low schema coverage, yet the description gives only a high-level purpose. An agent still lacks guidance on optional parameter meaning, return format, side effects, and how this step fits into the broader package lifecycle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 27%, and the description adds little parameter-level meaning. It clarifies that source_dir points at a local codebase and that yaaif-tool-package.json may supply metadata, but the many optional fields (version, platform, capabilities, command_args, env_template, timeout_seconds, etc.) are left completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Inspect'), a precise resource ('a local command/stdio MCP codebase'), and a concrete outcome ('propose Package Registry metadata + archive plan'). It also adds 'Does not upload', which distinguishes it from publishing and uploading siblings like yaaif_desktop_tool_package_publish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it is for local inspection, reads an optional config file, and explicitly avoids uploading. However, it never names alternative tools such as yaaif_desktop_tool_package_get, publish, or install, nor states when a caller should choose this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_installA
Install or reinstall a Package Registry archive onto one or more desktop workers (control-plane POST .../install). Re-running on a worker that already has the tool upgrades it to the current package version. Platform is optional — control-plane uses the worker's OS when omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | ||
| worker_id | No | ||
| package_id | Yes | Package UUID or tool_key. | |
| worker_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the idempotent/upgrade behavior and the platform default when omitted. However, it does not mention potential side effects (e.g., whether existing data is preserved), permissions required, or whether the operation is synchronous or asynchronous. It covers some behavioral aspects but not enough to be fully transparent for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant phrasing. It front-loads the core purpose, then adds the upgrade behavior and platform note. Every sentence adds value, and it is appropriately concise for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no output schema, and no annotations, the description covers the main purpose and the platform default. However, it omits crucial details about worker selection (worker_id vs worker_ids), does not hint at return values, and does not indicate whether the operation is synchronous or requires polling. These gaps could lead an agent to invoke it incorrectly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (package_id has a description). The description partially explains platform ('Platform is optional — control-plane uses the worker's OS when omitted') but fails to clarify the distinction between worker_id and worker_ids, which are both present and seem to serve overlapping purposes. It does not explain how to choose between them or if they are mutually exclusive. This is a significant gap given the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: installing or reinstalling a Package Registry archive onto desktop workers. It specifies the resource (Package Registry archive) and the target (desktop workers), and it differentiates from siblings like publish (upload) and upgrade (explicitly mentioned re-run upgrades, though the upgrade tool exists). The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that re-running on a worker upgrades to the current version, giving a usage hint. However, it does not explicitly contrast with sibling tools like yaaif_desktop_tool_package_upgrade, nor does it provide when-not-to-use guidance. It lacks explicit alternatives and conditions for selecting this tool over others in the same domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_publishA
Add or update a Package Registry entry from a local command/stdio MCP codebase: infer launch contract, zip source or wrap dist exe, create/update the package, upload the platform artifact. Use mode=add (fail if exists), update (fail if missing), or upsert (default).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| enabled | No | ||
| version | No | ||
| platform | No | ||
| tool_key | No | ||
| entrypoint | No | ||
| package_id | No | Existing package UUID or tool_key when mode=update. | |
| source_dir | Yes | Absolute path to a command/stdio MCP codebase. | |
| description | No | ||
| interpreter | No | ||
| capabilities | No | ||
| command_args | No | ||
| display_name | No | ||
| env_template | No | ||
| artifact_path | No | Optional prebuilt archive or executable (zip/tar.gz/exe/js). | |
| skip_artifact | No | Update metadata only; do not zip/upload an archive. | |
| git_commit_sha | No | Optional git commit SHA for this package version. | |
| git_remote_url | No | Optional remote git URL for this package version. | |
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses mutation, artifact creation/upload, and fail-if-exists/missing behavior. It does not mention auth requirements, reversibility, or what happens to an existing artifact during update, so some behavioral gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences front-load the action and pipeline, then add mode semantics. No filler; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter mutation tool with no annotations and no output schema, this is not complete. It omits return-value expectations, auth/side-effect details, and explanation of several optional parameters, leaving an agent to infer important behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 32%, so the description must compensate. It adds real meaning for mode (fail semantics) and the pipeline (infer launch contract, zip/wrap, upload). Many optional parameters (enabled, version, capabilities, env_template, timeout_seconds) are not explained, though their names are largely self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Add or update a Package Registry entry') and a concrete source ('local command/stdio MCP codebase'), then lists the pipeline. This clearly separates it from sibling package operations like install/delete/update by emphasizing local source and artifact upload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit mode semantics ('add (fail if exists), update (fail if missing), upsert (default)'), which tells an agent how to choose behavior. It does not explicitly name alternative tools, but the local-codebase/registry-entry context is enough to indicate when this tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_packages_listA
List command-based MCP tool packages in the tenant Package Registry (api-server /api/desktop/tool-packages).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of disclosing behavior. It clearly indicates a read-style 'list' operation against the tenant registry, which is useful. However, it does not mention query filtering, pagination limits, authentication needs, or what the response will contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that names the action, resource, scope, and endpoint with no wasted words. It is appropriately concise for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter list tool, the description is minimally adequate: it identifies the resource and endpoint. But with no output schema, no parameter documentation, and no annotation safety signals, the agent lacks important context about filtering, response shape, and operational constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for its two parameters, and the description does not explain 'q' or 'limit' at all. The agent is left to infer their meaning from the parameter names alone, with no guidance on filtering, pagination, or formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('command-based MCP tool packages in the tenant Package Registry'), and even gives the API path. This clearly separates it from sibling operations like yaaif_desktop_tool_package_get (single package) and other list tools targeting different resource domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's context clear by specifying the Package Registry and the package type, which is enough to distinguish it from sibling list tools like yaaif_mcp_servers_list or yaaif_local_tools_list. However, it does not explicitly state when not to use it or name an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_uninstallA
Remove an installed command MCP from desktop worker(s) (control-plane POST .../remove). Does not delete the Package Registry entry — use yaaif_desktop_tool_package_delete for that.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | ||
| tool_key | No | Defaults to the package tool_key. | |
| worker_id | No | ||
| package_id | Yes | Package UUID or tool_key. | |
| worker_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It correctly notes that the tool does not delete the Package Registry entry, which is a key side-effect distinction. However, it omits operational details like behavior when no worker_id is specified (all workers vs. required), reversibility, or required permissions. The description provides partial transparency but leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—a single primary sentence plus a clear redirect to the sibling tool. It front-loads the core action and includes the key distinction without waste. This is effective, efficient writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating operation with 5 parameters and no output schema, the description is incomplete. It does not explain the effect on worker(s) when worker_id vs. worker_ids is used, what happens if the package is not installed on a worker, or whether the operation is idempotent. The distinction from the delete tool is helpful but not sufficient for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has only 40% description coverage, and the description does not compensate. It does not explain the meaning or defaults of parameters like worker_id, worker_ids, or version. The only clarification (that tool_key defaults to the package tool_key) is already in the schema. The description adds minimal value beyond the schema for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (remove an installed command MCP from desktop workers) and clearly distinguishes it from deleting the Package Registry entry, explicitly naming the alternative tool. This makes the tool's purpose unambiguous and separable from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when NOT to use this tool (if you need to delete the registry entry) and directs to yaaif_desktop_tool_package_delete. This provides clear usage boundaries and alternative routing, which is exactly what an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_updateA
Update Package Registry metadata for an existing command MCP package (no local codebase required). To refresh the archive from source, use yaaif_desktop_tool_package_publish mode=update.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| version | No | ||
| package_id | Yes | ||
| description | No | ||
| interpreter | No | ||
| capabilities | No | ||
| command_args | No | ||
| display_name | No | ||
| env_template | No | ||
| git_commit_sha | No | ||
| git_remote_url | No | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates this is a mutation ('Update') and notes 'no local codebase required', but it does not disclose side effects (e.g., whether it overwrites or merges metadata, whether it triggers a rebuild, or affects running instances), nor does it mention permissions, reversibility, or what happens if fields are omitted. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. It front-loads the core purpose and immediately provides the key differentiator and alternative. It is appropriately sized for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 12 parameters, a nested object, no output schema, and no annotations, the description is minimal. It does not explain what constitutes 'Package Registry metadata', which parameters are typically updated, what happens if only package_id is provided, or what the response will look like. The description only covers the 'what' and 'when not to use' but leaves out essential operational details, making it insufficient for an agent to confidently invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and there are 12 parameters, including nested objects like env_template and arrays like capabilities and command_args. The description adds no parameter-specific meaning—it simply says 'Update Package Registry metadata' without clarifying which fields are updatable, which are optional vs. required, or how they relate to the update operation. Given the large parameter count and zero schema descriptions, the description completely fails to compensate, leaving the agent to guess the semantics of most parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Update Package Registry metadata for an existing command MCP package.' It specifies the verb 'update', the resource 'Package Registry metadata', and the target 'existing command MCP package'. It also explicitly differentiates from the sibling publish tool by noting 'no local codebase required' and pointing to the alternative for source refresh, making it easy for an agent to distinguish this tool from similar ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus an alternative: 'To refresh the archive from source, use yaaif_desktop_tool_package_publish mode=update.' It clearly implies that this tool is for metadata updates only, not source refresh, and it names the specific alternative. This is a clear when/when-not scenario with an explicit sibling reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_upgradeB
Upgrade a command MCP already installed on desktop worker(s) to the current Package Registry version. Same control-plane install dispatch as yaaif_desktop_tool_package_install (worker upserts the local tool).
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | ||
| worker_id | No | ||
| package_id | Yes | Package UUID or tool_key. | |
| worker_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that this is an upgrade action that follows the same control-plane dispatch as install and that the worker upserts the local tool. However, it does not mention permissions, reversibility, no-op behavior if already current, or impact on running workers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences, with the primary purpose front-loaded and the dispatch detail kept brief. It earns high marks for brevity, though the reference to another tool's dispatch behavior adds a small comprehension burden.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation/deployment tool with no annotations and no output schema, the description is under-specified. It omits target selection semantics, whether platform or worker filters are required, what version source is used, and what success or failure looks like. An agent would need additional context to call this reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, with only package_id documented. The description gives hints that multiple workers might be targeted ('desktop worker(s)') and references install dispatch, but it does not explain platform, worker_id, worker_ids, or how these selection parameters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action—upgrade an already-installed command MCP to the current Package Registry version—and identifies the resource (desktop workers). It differentiates from install by emphasizing 'already installed,' but does not explicitly distinguish itself from the similarly named sibling yaaif_desktop_tool_package_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is implied: use this when a command MCP is already installed and needs to be brought to the current registry version. It references install dispatch but does not provide explicit when-to-use or when-not-to-use guidance relative to update, uninstall, or install.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_tool_package_worker_statusB
Show install/upgrade/remove state of a Package Registry tool on desktop workers (from control-plane tool_install and tool_remove runs). Use before install or uninstall.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| worker_id | No | ||
| package_id | Yes | Package UUID or tool_key. | |
| worker_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the data source ('from control-plane tool_install and tool_remove runs'), which gives insight into what state is shown. However, it does not explicitly state that the tool is read-only (no side effects), nor does it mention pagination or filtering behavior. For a status query, this is a moderate gap but not severe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose and followed by a usage tip. It is concise, contains no fluff, and every word adds value. The structure is ideal for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should explain the return structure or at least the nature of the status information, but it only says 'Show install/upgrade/remove state'. Additionally, the filtering parameters (worker_id, worker_ids, limit) are not explained, leaving the agent uncertain about how to use them. This is a significant gap for a tool with four parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only package_id has a description). The description mentions 'a Package Registry tool' but does not explain the meaning of limit, worker_id, or worker_ids. Since coverage is low, the description should compensate, but it fails to clarify these parameters. The agent must infer their purpose from names alone, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Show install/upgrade/remove state of a Package Registry tool on desktop workers'. This clearly identifies the resource (Package Registry tool) and the scope (desktop workers). It is not a tautology and distinguishes from sibling tools like yaaif_desktop_tool_package_get (which likely returns package metadata) by focusing on installation state. However, it doesn't explicitly name alternatives, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use before install or uninstall.' This tells the agent when to invoke the tool, which is valuable. It doesn't mention when not to use it or alternative tools, but the given guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_desktop_workers_listC
List desktop workers in the tenant (control-plane).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. The verb 'List' implies a read-only operation, but the description does not clarify output format, pagination behavior, authorization needs, or effects of the optional limit parameter. It provides minimal behavioral context beyond the operation name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. It names the action, resource, and scope efficiently. While brevity leaves gaps elsewhere, the structure itself is exemplary for a simple list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is not complete enough for an agent to invoke the tool with confidence. It omits the meaning of 'q', the behavior of 'limit', what a desktop worker is, and what response shape to expect. Since there is no output schema or annotations, these gaps are material even for a straightforward list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain 'q' or 'limit' beyond the raw schema types. 'limit' is inferable by name, but 'q' is opaque and receives no clarification. The description fails to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a list operation, the resource ('desktop workers'), and the scope ('in the tenant (control-plane)'). This distinguishes it at a basic level from related sibling tools like yaaif_ops_desktop_runs_list, though it does not explicitly name or contrast those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as yaaif_ops_desktop_runs_list or yaaif_desktop_tool_package_worker_status. The parenthetical '(control-plane)' gives a hint about context, but the description does not state when this listing is preferred or when another tool should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_dev_session_ensureA
Create or reuse a Cursor authoring chat session for files_* / session_state_* local tools. Auto-picks default skills agent when agent_id omitted. Persists ids in /root/.yaaif/cursor/session.json.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| force_new | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It transparently reveals that it persists IDs to a JSON file and auto-picks a default agent, which are useful side effects. However, it does not disclose potential side effects like overwriting an existing session, creating multiple sessions, or requiring specific permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the core purpose and then provides key details about default behavior and persistence. Every sentence adds value, and the structure is tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple session ensure operation with 3 optional parameters and no output schema. The description covers the main purpose and two key side effects, but it leaves out specifics like whether session_id is required for reuse and what happens if force_new is true. Given the low complexity, it is mostly complete but not fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the agent_id parameter (auto-picks default if omitted) and implies session_id/force_new semantics through 'create or reuse'. While it doesn't fully detail each parameter, it gives enough context for an agent to infer their roles, which is commendable given the complete lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create or reuse') and resource ('Cursor authoring chat session'), and it clarifies the tool's scope by referencing 'files_* / session_state_* local tools'. This distinguishes it from general session tools like yaaif_ensure_session, though it doesn't explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for sessions used by local file tools, and that omitting agent_id will auto-pick a default. It does not explicitly state when NOT to use it or mention alternative tools like yaaif_ensure_session, so guidance is present but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_doctorB
End-to-end health narrative: profile, OIDC discovery, TLS, auth, tenant, catalog ping. Prefer before create/plan work.
| Name | Required | Description | Default |
|---|---|---|---|
| login_if_needed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior, but it only lists the areas checked. It does not explain whether the tool is read-only, whether it may initiate a login, whether it mutates state, or what happens when a check fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no filler. The first sentence front-loads the coverage scope, and the second provides direct usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a diagnostic tool with no annotations and no output schema, the description leaves important gaps: it does not define the output format, prerequisites, side effects, or the meaning of login_if_needed. It is minimally usable but not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter, login_if_needed, is completely absent from the description. With 0% schema description coverage, the description should compensate but instead adds no meaning beyond the parameter's own name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose as an 'end-to-end health narrative' and enumerates the components it covers (profile, OIDC discovery, TLS, auth, tenant, catalog ping). This distinguishes it from the many operational and management siblings, though it stops short of an explicit verb like 'check' or 'run'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Prefer before create/plan work' gives clear timing/context for when to invoke this tool. It does not explicitly name alternatives or state when not to use it, so it lacks full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ensure_sessionA
One-shot: validate platform/OIDC, refresh or login, auto-select tenant (last/single/default), return ready state.
| Name | Required | Description | Default |
|---|---|---|---|
| tenant | No | ||
| profile_id | No | ||
| login_if_needed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses key actions: validation, refresh or login, and tenant auto-selection based on last/single/default, plus return of ready state. It does not mention failure modes or interaction details, but the core behavior is transparent enough for an agent to predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the 'one-shot' nature and lists the main steps. It contains no redundant filler, and every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and annotations, the description is insufficiently complete. It omits details on parameter effects, return value structure of 'ready state', and potential errors or edge cases in tenant selection. The complexity of session setup warrants more context than a single sentence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not elaborate on tenant, profile_id, or login_if_needed. Despite mentioning auto-selection of tenant, it fails to explain how the tenant parameter influences selection or what profile_id controls. Since the schema provides no descriptions, the tool description should compensate but does not, leaving parameter meanings ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool validates platform/OIDC, refreshes or logs in, auto-selects a tenant, and returns a ready state. It identifies the specific resource (session) and the verb (ensure), distinguishing it from granular siblings like yaaif_login and yaaif_set_tenant by framing it as a one-shot orchestration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a high-level convenience for establishing a session, but it does not explicitly state when to prefer this over yaaif_login, yaaif_set_tenant, or yaaif_whoami, nor does it mention conditions where direct tools would be more appropriate. Guidance is vague and relies on inference from the 'one-shot' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_file_artifact_deleteA
Delete one artifact version (?version=N) or every version (omit version) via DELETE /api/files/artifacts. Requires confirm=true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | ||
| version | No | ||
| session_id | No | ||
| artifact_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral info. It discloses the HTTP method (DELETE) and the requirement of confirm=true. However, it does not mention that the operation is irreversible, whether it affects other resources, or any error conditions. Adds some value but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, front-loaded with action and scoping. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description covers the main delete behavior and confirm requirement but omits the required artifact_name parameter and session_id semantics. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description explains the meaning of 'version' (optional) and 'confirm' (must be true), but does not explain 'artifact_name' or 'session_id'. With 0% schema coverage, it partially compensates but misses two params. It does clarify the core behavior of version scoping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Delete' with resource 'artifact version' and clarifies scope: one version (?version=N) or all when omitted. Distinguishes from sibling tools like yaaif_file_artifact_versions (list) by the delete action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit comparison to alternative tools or conditions for when to use instead of other file operations. The context is implied (deletion), but no mention of when to use vs list/load tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_file_artifact_versionsA
List every version of an ADK artifact name (session-scoped or user:-prefixed). Uses GET /api/files/artifacts/versions. Pass session_id (or call yaaif_dev_session_ensure first).
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | ||
| artifact_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It reveals the HTTP GET method, implying a read-only operation, and discloses the session prerequisite. Yet it does not explicitly confirm non-destructiveness, mention pagination, or describe error/edge-case behavior (e.g., missing artifact name).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The core purpose is front-loaded, followed by the HTTP endpoint and the prerequisite. Every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential inputs and the read-only nature, but without an output schema it does not describe the return format (e.g., array of version objects, fields included). It also omits potential caveats like pagination or error handling. For a simple list operation it is adequate, but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It clarifies that artifact_name can be session-scoped or prefixed with 'user:', and explains that session_id can be omitted if a session is ensured. This goes beyond the schema's bare string types and helps the agent construct valid parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (list) and resource (versions of an ADK artifact) with scope ('session-scoped or user:-prefixed'). It clearly distinguishes from sibling file tools like yaaif_files_list or yaaif_load_artifacts by focusing on version history, and even mentions the exact HTTP endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear context for when to use this tool (to list versions) and a prerequisite (pass session_id or call yaaif_dev_session_ensure first). However, it does not explicitly compare against alternatives like yaaif_file_artifact_delete or yaaif_load_artifacts, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_file_get_extractedB
Fetch extracted text via GET /api/files/extracted. file_id may be a durable UUID or an ADK artifact filename; version selects a historical revision (omit/0 = latest).
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | ||
| version | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden. It usefully discloses that the operation is a GET, that file_id accepts a UUID or ADK artifact filename, and that version omit/0 means latest. It does not cover response shape, error behavior, or permissions, but for a read-style fetch the provided constraints are meaningful. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the main action. Every clause adds information: endpoint, identifier forms, and version semantics. There is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter fetch with no output schema or annotations, the description covers the required parameter and the historical-version parameter, and indicates the returned data is extracted text. It falls short on session_id semantics and does not say what happens for missing or unknown files or how large text payloads are returned, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides zero property descriptions, so the description must compensate. It explains file_id's accepted forms and version's historical-revision semantics, which are not inferable from the schema alone. However, session_id is left completely unexplained, a notable gap at 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object ('Fetch extracted text') and names the underlying endpoint, making the tool's function unambiguous. It does not explicitly contrast with file-related siblings like yaaif_file_load_context or yaaif_files_list, so it earns 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use guidance or alternatives. It gives useful identifier and version hints, but does not tell an agent when to choose this over siblings such as yaaif_file_load_context, yaaif_file_artifact_versions, or yaaif_files_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_file_load_contextC
Load extracted text via file_load_context. file_id may be a durable UUID or ADK artifact filename; pass version for a historical revision.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral facts itself. It does add useful behavior: file_id can be either a durable UUID or ADK artifact filename, and version selects a historical revision. However, it does not state whether the call is read-only, what the return payload is, or error behavior, leaving the safety/behavior profile under-specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, roughly 25 words; the action and key identifier guidance are front-loaded. The phrase 'via file_load_context' is somewhat redundant with the tool name, but it does not materially hurt concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, this description leaves critical invocation details unspecified: where file_id/version go in the schema, how agent_id/session_id relate, and what the returned extracted text looks like. It is too thin to support reliable first-time calling despite the useful identifier hint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has three generic parameters with no descriptions (0% coverage), so the description must explain the arguments. It mentions file_id and version but never maps them into the schema fields or the open `arguments` object, and it ignores agent_id and session_id entirely. This provides partial but insufficient parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and object: 'Load extracted text', and adds useful identifier semantics (durable UUID or ADK artifact filename, optional version). It does not differentiate from closely named siblings such as yaaif_file_get_extracted, but the core purpose is not tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No mention of when to choose this tool over alternatives such as yaaif_file_get_extracted or yaaif_load_artifacts; there is no when-not or exclusion. The only guidance is a parameter-level instruction about file_id/version, which does not address tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_files_listB
List ingested files for the active authoring session (includes artifact_name/version when present). Call yaaif_dev_session_ensure first.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It communicates that this is a listing (read-style) operation and adds useful detail about including artifact_name/version when present. However, it does not disclose what happens if no session exists, whether results are paginated, what the output structure is, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with the core purpose stated first, followed by a concise prerequisite. Every element earns its place and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There are no annotations, no output schema, and no parameter descriptions, so the agent relies entirely on this short description. It provides the tool's purpose and a prerequisite, but it is missing parameter semantics, return-value details, failure modes, and alternatives. This is enough to start but not enough to call the tool correctly with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (agent_id, arguments, session_id). The only hint is 'active authoring session', which loosely implies session_id, but the description fails to compensate for the missing schema descriptions. An agent cannot infer what arguments should contain or how agent_id relates to the call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('List'), a specific resource ('ingested files'), and a specific scope ('active authoring session'), and it adds that artifact_name/version is included when present. This is not a tautology and is informative on its own. However, it does not differentiate from the similarly named sibling yaaif_session_files_list, so it loses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Call yaaif_dev_session_ensure first' is an explicit, actionable prerequisite that tells the agent what to do before invoking this tool. It provides clear usage context, but it does not state when to choose this tool over alternatives like yaaif_files_search or yaaif_session_files_list, nor does it mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_files_searchC
Search uploaded files by name/preview via files_search. Call yaaif_dev_session_ensure first.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description does not mention whether the tool is read-only, what the search scope is (e.g., all tenant files vs. session files), whether it requires authentication beyond a session, or how results are returned. The only addition is the prerequisite call, which points to session setup but doesn't explain side effects or failure modes. This is minimal disclosure for a tool with unknown behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences, and the primary action is front-loaded. It wastes no words and states the prerequisite immediately after. However, the structure could be improved by separating the prerequisite into a clearer usage note, but it is efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, no annotations, and a 0% schema description coverage, the description is insufficient. It fails to explain the parameters, the search criteria (e.g., how to pass search terms via 'arguments'), the result format, and error conditions. The prerequisite reference to yaaif_dev_session_ensure is helpful but does not cover other essential context like whether session_id is required or how to specify the agent. The description is sparse for the complexity involved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 3 parameters but 0% description coverage, meaning the schema properties (agent_id, arguments, session_id) are not documented in the description. The description provides no hint about what each parameter means or how to populate them. The 'arguments' parameter is an open object with additionalProperties, requiring further explanation, which is entirely absent. The description does not compensate for the schema's lack of descriptions, making it hard to construct a correct call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose: to search uploaded files by name or preview via files_search. It clearly identifies the resource (uploaded files) and the action (search), and it is distinct from sibling tools like yaaif_files_list and yaaif_file_load_context. It does not, however, detail the exact scope (e.g., which files are searched) or differentiate from all related siblings, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear prerequisite: call yaaif_dev_session_ensure first. This is useful for ensuring a session exists. However, it does not specify when to use this tool versus alternatives like yaaif_files_list (which lists files) or yaaif_session_files_list (which lists session files). It also doesn't provide any exclusions or alternative routing, leaving some ambiguity about the best tool for different search scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_generate_fileC
Create a downloadable file in the session via generate_file (returns file_id / artifact_name).
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions the return value but gives no details on side effects, permission requirements, whether the file is stored permanently, or how it relates to the session. The mutation aspect ('Create') is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently conveys the core action and return type, though it sacrifices necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters (one a nested object) and no output schema or annotations, this description is severely incomplete. An agent has no way to know what to put in 'arguments', which agent/session to target, or how the returned file_id is used downstream. The tool is under-specified to the point of being unusable without external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description provides no explanation of agent_id, arguments, or session_id. The arguments object is a free-form container with no guidance on required fields, file content format, or filename handling. This is a critical gap for a tool whose purpose depends entirely on its parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a downloadable file in the session') and mentions the return value (file_id / artifact_name). It distinguishes the tool from file-listing or sharing siblings, but doesn't explicitly call out alternatives, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other file-related tools (e.g., file_share_link, file_load_context). It doesn't state any prerequisites or scenarios where this should be preferred, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_list_ambient_workflowsC
List ambient workflows via platform local tool.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does not state whether the operation is read-only, what filtering or criteria it applies, whether there are pagination limits, or what 'platform local tool' means. The only behavioral hint is the word 'list,' which implies a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, with no filler. However, 'via platform local tool' is vague and doesn't earn its place; the extreme brevity comes at the expense of needed context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, three undocumented parameters, and a confusing sibling (yaaif_ambient_workflow_list), this description leaves too much unknown. An agent would not know which parameters are needed, what the response looks like, or whether this differs from the sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning for agent_id, arguments, or session_id. With three parameters and one nested object, the agent cannot infer parameter purposes, formats, or optionality from either source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action ('List ambient workflows') and a resource. However, the qualifier 'via platform local tool' is vague and does not meaningfully distinguish it from the sibling yaaif_ambient_workflow_list, which appears to do the same thing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus yaaif_ambient_workflow_list or yaaif_platform_list. It does not state conditions, prerequisites, or alternatives, leaving the agent to guess which listing tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_list_tenantsA
List tenants for the signed-in user (normalized: id, name, slug, is_last, is_selected).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It partially does this by mentioning that output is 'normalized' and listing the fields, which reveals the response shape. However, it does not disclose whether any session/authentication is required, whether results are paginated, ordered, or if any side effects occur. The read-only list behavior is implied but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the action, scope, and output normalization. There is no filler, and every element contributes to understanding the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list operation, the description is complete enough. It states the targeted resource, the user scope, and the normalized output fields, so an agent can invoke it correctly and interpret the result without additional context. The lack of an output schema is compensated by the listed fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is trivially 100%, so the baseline is 4 per the rubric. The description adds meaningful value by specifying the normalized output fields, which helps the agent understand the exact return shape without needing an output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'List tenants for the signed-in user'. It also enumerates the normalized output fields, which clarifies the tool's scope. However, it does not explicitly differentiate from sibling tools like yaaif_set_tenant, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for the signed-in user' implies when to use this tool, but there is no explicit guidance about when to prefer alternatives or when not to use it. Sibling tools like yaaif_set_tenant and yaaif_whoami are not referenced, so the agent must infer the usage context from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_load_artifactsC
ADK-aligned artifact helper: list session/user: artifacts or load by filename/file_id (optional version). Prefer for human-readable names.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full burden of behavioral disclosure. It reveals that the tool can list or load artifacts and that version is optional, but it does not mention return shape, error behavior, side effects, permissions, or what 'load' returns to 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the main action, but the phrasing 'list session/user: artifacts' is awkwardly structured. 'ADK-aligned artifact helper' adds jargon without much concrete value, and the compressed style sacrifices clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters, an undocumented nested 'arguments' object, no annotations, and no output schema, so the description must compensate—but it does not. An agent would not know how to construct a successful invocation, what inputs are required, or what the response will look like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not map 'filename/file_id', 'session/user', or 'optional version' to the actual parameters (agent_id, arguments, session_id). The 'arguments' object is opaque, and the agent cannot infer where to place the filename or file_id from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('list', 'load') and identifies the resource ('artifacts'), including scope ('session/user') and optional versioning. It is clear enough to understand the tool's function, but it does not explicitly distinguish it from sibling file/artifact tools such as yaaif_file_load_context or yaaif_session_files_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Prefer for human-readable names' gives a weak usage hint, implying the tool is best when working with named artifacts. However, it provides no explicit when-to-use or when-not-to-use guidance, and it names no alternatives among the many closely related file-tool siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_local_tool_callB
Invoke an agent-service built-in local tool (not external MCP). Prefer for skill_validate_module, skill_develop, files_list, list_ambient_workflows, etc. High-impact tools require allow_mutating=true.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| branch | No | ||
| agent_id | No | ||
| arguments | No | ||
| session_id | No | ||
| allow_mutating | No | ||
| resolve_workspace | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It reveals that high-impact tools require allow_mutating=true, which is a meaningful safety/authorization note. But it does not describe side effects, return format, error behavior, or the effect of other parameters (e.g., branch, agent_id). For a dispatcher tool, this is a moderate gap; it adds some context but not rich behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and then adding examples and a safety note. There is no filler or repetition. It could be slightly more informative, but it is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic dispatcher with no output schema and no annotations, the description is under-specified. It does not explain how to pass arguments, what the return value is, or that a local tool list (e.g., yaaif_local_tools_list) exists to discover valid names. It also omits guidance on when to set branch, agent_id, or resolve_workspace. An agent would struggle to call this correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description explains almost none of the 7 parameters. It only hints at allow_mutating in the context of high-impact tools, but does not clarify the purpose of name, arguments, branch, agent_id, session_id, or resolve_workspace. An agent cannot infer how to construct the arguments object or what each field means from this description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool invokes a built-in local tool (not external MCP), which distinguishes it from the many yaaif_mcp_* siblings. It lists concrete example tool names (skill_validate_module, skill_develop, files_list, list_ambient_workflows) that an agent can immediately associate with. This is a specific verb+resource pairing that resolves ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Prefer for' a set of tools, giving clear when-to-use guidance. It also discloses that high-impact tools require allow_mutating=true, which is a usage condition. However, it does not explicitly state when not to use it (e.g., for MCP tools) or name alternatives like yaaif_local_tools_list, so exclusion guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_local_tool_getC
Get one local tool definition (name, description, input_schema, family).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses the return fields (name, description, input_schema, family), which is useful, but does not mention that this is a read-only operation, possible side effects, or behavior when the requested tool does not exist. It provides minimal transparency beyond the return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is appropriately short, but perhaps too terse to cover essential context. It earns high marks for efficiency, though the lack of parameter clarification prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It fails to explain the meaning of the 'name' parameter, does not mention error handling or edge cases, and offers no usage context. An agent could not confidently invoke this tool correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single required string parameter 'name' with no description (0% coverage). The tool description does not explicitly explain that 'name' is the identifier of the tool to fetch; the parenthetical lists 'name' as a return field, which could confuse the agent about the input. The description does not add meaning beyond the raw schema field name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('one local tool definition'), and enumerates the returned fields (name, description, input_schema, family). It clearly distinguishes from the list variant (yaaif_local_tools_list) by specifying 'one', but does not explicitly name alternatives or contrast with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus fetching a list or calling a tool. The description does not mention prerequisites, error conditions, or why one would choose this over yaaif_local_tools_list. Usage is only weakly implied by the word 'one'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_local_tools_catalog_overviewB
Counts of local tools by family plus recommended skill-authoring tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It states that it returns counts and recommended tools but does not disclose whether it is read-only, whether any side effects occur, or what the exact output structure is. For a simple overview tool this may be acceptable, but it lacks explicit transparency about safety or data format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose. It is efficient and free of extraneous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool returns (counts by family and recommended tools) but is vague about what 'family' means and the structure of the output. With no output schema, more detail is needed to help the agent interpret results. It also doesn't clarify the scope of 'local tools' or how this relates to other catalog tools. For a simple overview, this is minimally acceptable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100%. Per the baseline for zero parameters, a score of 4 is appropriate. The description adds context about the tool's output, but since there are no parameters, there is nothing further to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: providing counts of local tools by family and recommended skill-authoring tools. This is specific and distinguishes it from tools like yaaif_catalog_overview (broader overview) and yaaif_local_tools_list (detailed list). It does not explicitly name a sibling, so it doesn't fully differentiate, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this should be used for quick counts rather than detailed listings, nor does it reference any sibling tools. An agent would have no indication of preferred scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_local_tools_listA
List agent-service built-in local tools (skill lifecycle, files, ambient trigger, state, approvals). Use when authoring SKILL.md tools: lists.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| family | No | ||
| offset | No | ||
| names_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. The word 'List' implies a read-only operation and the scope is defined as built-in local tools. Still, it does not disclose response format, pagination behavior, or any constraints beyond the category list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the primary action and scope front-loaded, followed by a direct usage cue. There is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, no annotations, and five parameters are undocumented. The description gives a good one-line purpose but not enough for an agent to confidently use filtering options or understand what the response will contain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain q, limit, offset, or names_only. The family enum values partially overlap with the categories in the description, but the tool's filtering and output-shaping parameters are left to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('agent-service built-in local tools'), then enumerates the covered categories. This distinguishes it from MCP-related or platform-level list siblings without requiring the agent to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit use context: 'Use when authoring SKILL.md tools: lists.' This tells the agent when to reach for this tool. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_loginA
Open browser PKCE login against the active platform OIDC authority and persist tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a good job: it discloses that the tool opens an interactive browser flow and persists tokens as a side effect. It does not mention whether it blocks on user completion or what it returns, but the core behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with no filler. The primary action is front-loaded, and both the flow type and the persistence side effect are packed in efficiently without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter login tool with no output schema, the description is largely sufficient: it names the authority source and the persistence outcome. It could add that the browser flow requires interactive user completion, but the phrase 'Open browser' reasonably implies this. Minor gap, not a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description need not explain any. It usefully adds that the login targets the 'active platform' authority, implying a state dependency that the empty schema cannot convey. Baseline 4 for a no-param tool is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Open'), a resource ('active platform OIDC authority'), and the flow ('PKCE login'), plus the outcome ('persist tokens'). This is clear and distinguishes it from login_device via the 'browser PKCE' qualifier, though it does not explicitly name the sibling it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this login method versus yaaif_login_device or yaaif_ensure_session. The description does not state prerequisites (e.g., a platform must be active) or when browser PKCE is preferred over device flow, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_login_deviceA
Headless/CI device-code login (Keycloak device grant + PKCE S256). Returns verification_uri and user_code immediately (status=pending) by default so the agent can show them before MCP tool timeouts; background-polls until authorized. Pass wait=true to block until complete. Requires oauth2.device.authorization.grant.enabled on the active OIDC client.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | ||
| timeout_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries the burden; it discloses default non-blocking behavior, background polling, immediate status=pending, and wait=true blocking. It doesn't mention failure/expiry or side effects like session persistence, but core runtime behavior is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the key behavior, then default flow, then wait option, then prerequisite. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a login tool with no annotations and no output schema, it covers the important return values, default vs blocking behavior, and environment requirement. It omits timeout_ms semantics and what happens after authorization, but the agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and timeout_ms is never mentioned; only wait is explained ('Pass wait=true to block until complete'). The description must compensate for the empty schema and does so for only one of two parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly identifies a specific verb and resource: headless/CI device-code login via Keycloak device grant + PKCE S256. It distinguishes itself from the interactive yaaif_login sibling by naming the flow and the immediate return of verification_uri/user_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description gives explicit context (headless/CI) and default-vs-wait behavior, plus a config prerequisite. It doesn't name yaaif_login as the interactive alternative, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_logoutA
Clear the local YAA\F client session. Optionally open Keycloak end_session.
| Name | Required | Description | Default |
|---|---|---|---|
| end_session | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It clearly states the core local session clearing effect and the optional Keycloak end_session side effect. It does not explain broader consequences of ending the Keycloak session, but the main behavioral profile is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary behavior is front-loaded, and the optional parameter behavior is stated in the second sentence without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity logout tool with one optional parameter and no output schema, the description covers the essential call behavior. It is slightly light on usage context and the precise meaning of the Keycloak end_session option, but it is sufficient for a straightforward logout operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for the single optional boolean 'end_session' (0% coverage). The description partially compensates by tying the parameter to 'Optionally open Keycloak end_session', but it does not clarify what exactly end_session does, such as whether it invalidates the SSO session or triggers a redirect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Clear the local YAA\F client session') and an optional secondary behavior ('Optionally open Keycloak end_session'). It is immediately distinguishable from auth-related siblings like yaaif_login, yaaif_whoami, and yaaif_ensure_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as yaaif_ensure_session or yaaif_login, nor does it mention when not to use it. The intended context is implied by the tool name and the action, but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_createA
Create an MCP deployment (docker_compose or kubernetes_gitops). transport_type must be STREAMABLE_HTTP or SSE. For k8s prefer endpoint_mode=docker_name (auto Service DNS); use custom + endpoint_host only when needed. Prefer API key secret_env over platform S2S.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | ||
| name | Yes | ||
| image | Yes | ||
| spec_id | No | ||
| mcp_path | No | ||
| slot_key | No | ||
| secret_env | No | ||
| spec_version | No | ||
| auto_register | No | ||
| endpoint_host | No | ||
| endpoint_mode | No | ||
| container_port | No | ||
| transport_type | No | ||
| auto_import_tools | No | ||
| deployment_method | No | ||
| client_secret_headers | No | ||
| registry_credential_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose side effects. It only states 'Create an MCP deployment' but does not clarify whether this deploys immediately or just registers a definition, nor does it mention permissions, idempotency, or failure behavior. The existence of a separate deploy tool (yaaif_mcp_deployment_deploy) suggests ambiguity about the actual action performed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. It front-loads the core action, then provides key constraints and preferences. Every sentence adds value, and the structure is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 parameters, nested objects, no output schema, and no annotations, the description is severely incomplete. It lacks details on required fields beyond name/image, return values, side effects, and prerequisites. An agent would struggle to call this correctly without additional context, especially given the complexity of the input schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 17 parameters with no descriptions, and the description only explains transport_type, endpoint_mode, endpoint_host, secret_env, and deployment_method. Many other parameters (env, spec_id, mcp_path, slot_key, auto_register, container_port, auto_import_tools, client_secret_headers, registry_credential_id, spec_version) remain unexplained, so the agent cannot correctly construct inputs without external knowledge. The coverage is insufficient for a tool with this many parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create an MCP deployment' with two deployment methods (docker_compose or kubernetes_gitops). It clearly distinguishes from sibling tools like update, redeploy, stop, delete, and deploy by being the create operation, and it also mentions transport_type constraints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use certain settings: transport_type must be STREAMABLE_HTTP or SSE, prefer endpoint_mode=docker_name for k8s, and prefer API key secret_env over platform S2S. However, it does not explicitly contrast with alternative tools (e.g., when to use update vs create), though the name and purpose make the distinction obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_deleteA
Delete an MCP deployment. cascade_agent=true (default) also removes the linked agent-service MCP server/tools.
| Name | Required | Description | Default |
|---|---|---|---|
| cascade_agent | No | ||
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the cascade effect and default, but doesn't explicitly state irreversibility, permissions, or other side effects. 'Delete' implies destructive, but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the primary action front-loaded and no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete with one required parameter, it covers the key behavior and cascade impact. Could mention permanence or effect on running instances, but adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains cascade_agent's default and effect, covering the non-obvious parameter. deployment_id is self-explanatory from name and required flag, so not critical to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and resource ('MCP deployment'), and adds the unique cascade_agent behavior that distinguishes it from siblings like stop or update. The action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative comparisons. The description implies permanent removal but doesn't contrast with yaaif_mcp_deployment_stop or other lifecycle tools. The cascade detail is a usage nuance, not a routing guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_deployA
Deploy an MCP deployment by id (compose up, or GitOps overlay write/push for kubernetes_gitops).
| Name | Required | Description | Default |
|---|---|---|---|
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses two concrete execution behaviors (compose up, GitOps overlay write/push), but does not explain whether deployment is asynchronous, potentially destructive, or what the returned result signifies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence states the action, the argument, and the mode split without filler or repetition. Every part of the description earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter deployment action, the definition is usable but thin: it leaves out expected output, completion semantics, and any relationship to redeploy/update. With no output schema or annotations, a bit more context about side effects or return behavior would make the tool fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is required and self-describing (deployment_id), and the description reinforces that the id identifies the deployment. Since schema description coverage is 0%, the description could add more context about where the id comes from or how it is used, but the parameter is simple enough that this is only a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Deploy an MCP deployment by id', and adds concrete execution modes. It is unambiguous, though it does not explicitly differentiate from the closely named mcp_deployment_redeploy sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when an existing MCP deployment should be deployed by its id. However, it offers no explicit guidance on when to prefer this over mcp_deployment_redeploy or mcp_deployment_update, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_k8s_statusB
Kubernetes runtime introspection for a kubernetes_gitops deployment (pod + Deployment status). Returns clear error if K8s integration is disabled.
| Name | Required | Description | Default |
|---|---|---|---|
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself discloses one behavior: it returns a clear error if K8s integration is disabled. 'Introspection' implies a read-only operation, but the description does not explicitly state read-only/no side effects, permissions, or other failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core action is front-loaded and the error behavior is a useful second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter introspection tool it conveys the resource type, what status is returned (pod + Deployment status), and a key failure mode. Given no annotations and no output schema, it is adequate, though it could add an explicit read-only note and more detail about returned status fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for deployment_id, and the description only ties it to 'a kubernetes_gitops deployment.' It does not clarify whether the value is a platform deployment ID or Kubernetes name, its format, or how to obtain it, so the description does not compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation (Kubernetes runtime introspection) and resource (a kubernetes_gitops deployment) and specifies the status scope (pod + Deployment status). This is enough to distinguish it from generic deployment status, though it does not explicitly contrast with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for kubernetes_gitops deployments and warns about the K8s-integration-disabled error case. However, it gives no explicit when-to-use or alternative guidance relative to siblings like yaaif_mcp_deployment_status or logs, leaving selection mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_logsA
Fetch MCP deployment logs. Routes automatically: docker_compose → /logs; kubernetes_gitops → /k8s/logs.
| Name | Required | Description | Default |
|---|---|---|---|
| tail | No | ||
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It usefully discloses automatic routing to /logs vs /k8s/logs, but does not mention return format, pagination, tail behavior, or whether any permissions are required. Some behavior is disclosed, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary purpose is front-loaded, and the routing detail is presented compactly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too sparse for a tool with no output schema, no annotations, and zero schema description coverage. It explains routing but leaves out what the returned logs look like and what 'tail' controls, leaving an agent to guess at invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate, but it does not explain deployment_id or tail at all. The parameter names are somewhat self-explanatory, but 'tail' is ambiguous (lines vs. seconds) and the description adds no semantic detail beyond the schema property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Fetch') and resource ('MCP deployment logs'), and the routing note distinguishes it from sibling deployment status or management tools. An agent can immediately identify what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The route information clarifies that it works for both docker_compose and kubernetes_gitops deployments, but there is no explicit statement of when to prefer this over alternatives like yaaif_mcp_deployment_status or the ops log tools. Usage context is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_redeployA
Roll out an existing MCP deployment (compose recreate or k8s restart/GitOps sync). Use after update or secret_env bind.
| Name | Required | Description | Default |
|---|---|---|---|
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the operational mechanism and that it affects running deployment state ('compose recreate', 'k8s restart'), implying containers/pods are replaced. However, it does not mention side effects such as downtime, async completion, or how to verify success.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the action and mechanism, with the usage trigger in the second sentence. There is no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating operation with no annotations and no output schema, the description gives enough to decide when to call it but omits behavioral expectations such as whether it is synchronous, whether downtime occurs, and how to confirm rollout. The single parameter is simple enough that the lack of detailed parameter documentation is less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter `deployment_id` has no schema description, and the description only indirectly clarifies it via 'existing MCP deployment.' This adds minimal meaning beyond the schema's string type, but does tell the agent the ID must reference an already-created deployment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete action ('Roll out an existing MCP deployment') and adds the mechanism ('compose recreate or k8s restart/GitOps sync'). The qualifier 'existing' plus 'Use after update or secret_env bind' clearly separates this from initial deploy/update operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit trigger context: 'Use after update or secret_env bind.' It does not name sibling alternatives like yaaif_mcp_deployment_deploy or give when-not-to-use cases, so it falls just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_registerB
Register a deployed MCP server into the agent-service tool catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | No | ||
| slot_key | No | ||
| spec_version | No | ||
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The description states the core action (registering) but does not disclose any side effects, such as whether the registration immediately makes the server discoverable, whether it overwrites existing registrations, or if it requires specific permissions. It is a single sentence that adds limited behavioral context beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, tightly packed with no filler. It front-loads the action ('Register') and the object. It is appropriately concise for a simple registration operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the system and the lack of any annotation or output schema, this description is insufficient. An agent needs to know when to call register versus other deployment lifecycle tools, what effect registration has on the catalog, and what the parameters represent. With only 4 parameters and zero schema coverage, the description does not provide enough to invoke correctly without significant inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning none of the four parameters (spec_id, slot_key, spec_version, deployment_id) have descriptions in the schema. The tool description does not explain any parameter's meaning or the relationship between them (e.g., why spec_id and spec_version are needed). The only hint is from names, and the required parameter deployment_id is not clarified. The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Register') and resource ('deployed MCP server into the agent-service tool catalog'). It distinguishes this from the sibling deployment tools (create, update, stop, delete) by focusing on 'register' after deployment, which is unique among siblings. However, it does not explicitly name a sibling to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a post-deployment action (registering a deployed server), which is a clear context. But it does not explicitly state when to use this tool versus alternatives like yaaif_mcp_deployment_update or yaaif_mcp_deployment_deploy. There is no guidance on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployments_listC
List MCP deployments (api-server / deployment-service).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only says 'List MCP deployments' – it does not mention pagination, filtering, return format, whether it is read-only (though implied), any side effects, or error behavior. For a list operation, an agent would benefit from knowing if it returns a summary, statuses, or just names, but this is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loads the primary action and resource. There is no wasted wording. However, it is perhaps too terse, but the structure itself is efficient. It earns a high score for conciseness, though the lack of detail affects other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two undocumented parameters and no output schema, the description is severely incomplete. It does not explain what 'q' and 'limit' do, what the return value looks like, or any filtering or pagination behavior. An agent would be unable to correctly invoke this tool without guessing at the parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has two parameters (q and limit) with no descriptions, and schema description coverage is 0%. The description does not mention these parameters at all, so an agent has no idea what 'q' or 'limit' control. Since the schema provides no context, the description was expected to compensate, but it fails entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List) and resource (MCP deployments), and adds specificity with the parenthetical '(api-server / deployment-service)', which clarifies the scope. It distinguishes from siblings like yaaif_mcp_servers_list (which lists servers, not deployments) and yaaif_mcp_deployment_status (which gets status, not a list). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention when to prefer this over yaaif_mcp_servers_list, yaaif_mcp_deployment_status, or any other related tool. The description only states what it does, not the conditions under which an agent should select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_statusB
Get MCP deployment status (phase, status_stages, generated_endpoint, kubernetes_namespace, overlay/compose paths).
| Name | Required | Description | Default |
|---|---|---|---|
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly conveys a read-only operation and lists the fields returned, but it does not disclose behavior for an invalid/unknown deployment_id, response structure, or any auth/error details. Adequate for a status read, but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first, followed by a compact parenthetical list of returned fields. No wasted words, though it could have spent the space on usage guidance instead of field enumeration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema and no annotations, the description does name the returned fields, which helps an agent understand the result. But it omits error behavior and fails to position itself against yaaif_mcp_deployment_k8s_status, so completeness is only partial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds nothing about deployment_id beyond the schema's bare 'string' type. The name is self-explanatory, but with zero coverage the description was expected to compensate for parameter semantics and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get MCP deployment status') and enumerates the returned fields (phase, status_stages, generated_endpoint, kubernetes_namespace, overlay/compose paths), which is concrete. However, it does not differentiate itself from the near-twin sibling yaaif_mcp_deployment_k8s_status, leaving an agent to guess which status tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Given siblings like yaaif_mcp_deployment_k8s_status (a parallel status read) and yaaif_mcp_deployments_list, the absence of any exclusion or routing hint is a real gap for an agent deciding between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_stopA
Stop an MCP deployment (compose stop or k8s scale-down via GitOps).
| Name | Required | Description | Default |
|---|---|---|---|
| deployment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does add meaningful behavior details by explaining the two stop mechanisms ('compose stop or k8s scale-down via GitOps'). However, it omits important traits such as whether the operation is reversible, whether it is asynchronous, and what happens to the deployment definition after stopping.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action ('Stop an MCP deployment'), and contains no filler or redundant wording. Every word adds useful context, including the two concrete mechanisms.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation, the description conveys the core action and mechanism, but leaves open several important contextual points: prerequisites (deployment must exist), whether the operation is synchronous, expected return behavior, and what stop does not do (e.g., it does not delete the deployment). Given no output schema and no annotations, this is an adequate but not complete definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the single parameter `deployment_id` is semantically straightforward and is linked to the deployment to be stopped by the description. The description does not explain the format of the ID or how to obtain it, but the parameter name and the tool intent are enough to make its role clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Stop an MCP deployment') and adds the implementation detail ('compose stop or k8s scale-down via GitOps'), which clearly distinguishes it from sibling tools like delete, redeploy, deploy, or status. An agent can tell what this tool does and how it differs from the lifecycle siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus yaaif_mcp_deployment_delete, yaaif_mcp_deployment_redeploy, or yaaif_mcp_deployment_deploy. It does not mention that stop is typically for temporary halts, nor does it state any exclusions, prerequisites, or alternatives. The intended usage is only implied by the verb 'stop'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_deployment_updateA
Update an MCP deployment (image/env/secret_env/endpoint/…). GETs current record, merges patches, PUTs. Call yaaif_mcp_deployment_redeploy afterward for rollout.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | ||
| name | No | ||
| image | No | ||
| mcp_path | No | ||
| secret_env | No | ||
| auto_register | No | ||
| deployment_id | Yes | ||
| endpoint_host | No | ||
| endpoint_mode | No | ||
| container_port | No | ||
| transport_type | No | ||
| auto_import_tools | No | ||
| deployment_method | No | ||
| clear_endpoint_host | No | ||
| client_secret_headers | No | ||
| registry_credential_id | No | ||
| clear_registry_credential_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry the burden. It discloses the GET-merge-PUT pattern, which is useful, and implies no rollout occurs until redeploy. However, it omits auth requirements, error behavior, and side effects beyond the config change.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. Front-loads purpose and includes actionable follow-up. Excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a complex schema and no output schema, the description provides only high-level guidance. It lacks parameter details, required field note, and response format, leaving the agent underinformed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description only names a few fields (image/env/secret_env/endpoint) without explaining their semantics. With 17 parameters, many of which are nuanced (clear_endpoint_host, secret_env structure), the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (MCP deployment), lists example fields, and distinguishes from sibling create/redeploy tools by describing the read-modify-write pattern and the follow-up redeploy step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when to use (updating an existing deployment) and instructs to call redeploy afterward, but doesn't explicitly state when not to use (e.g., creation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_link_or_createC
Idempotently link/create an external MCP tool in the tenant catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | ||
| name | Yes | ||
| enabled | No | ||
| headers | No | ||
| spec_id | No | ||
| endpoint | Yes | ||
| slot_key | No | ||
| server_id | No | ||
| description | No | ||
| transport_type | No | ||
| timeout_seconds | No | ||
| remote_tool_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. 'Idempotently' is a meaningful behavioral trait and 'external MCP tool in tenant catalog' adds useful context. However, it does not disclose side effects, permissions, or what happens to existing links.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, and it front-loads the key idempotency behavior. It is concise, though it achieves brevity by omitting useful operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 12 parameters, no output schema, and no annotations, a one-sentence description is insufficient. It does not cover return values, parameter semantics, or the operational context needed to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no parameter-level meaning. With 12 parameters, including nested objects like env and headers, the agent has no guidance on what values to supply or how parameters relate to the linking/creation operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('link/create') and identifies the resource ('external MCP tool in the tenant catalog'), making the core action clear. It doesn't explicitly differentiate from related MCP tools like yaaif_mcp_deployment_register or yaaif_mcp_scaffold, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor on prerequisites or when 'link' vs 'create' applies. The idempotency hint implies safe re-invocation but does not help the agent choose this over sibling MCP tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_scaffoldC
Scaffold a new MCP server from official YAA\F templates into the workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| language | No | ||
| target_dir | No | ||
| workspace_root | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only says 'scaffold' and 'into the workspace,' without disclosing whether existing files are overwritten, whether workspace_root is required, or what side effects occur. For a file-generating mutation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, and the action and object are front-loaded. It is appropriately sized for a high-level summary, though it remains under-specified in content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, 0% parameter coverage, and no usage guidance, the description only conveys high-level intent. An agent lacks enough context to invoke the tool correctly with its parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four parameters (name, language, target_dir, workspace_root). An agent cannot infer what values are expected or how the parameters relate to the scaffolding operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Scaffold') and resource ('a new MCP server'), and identifies the source ('official YAA\F templates') and destination ('the workspace'). This makes the tool's purpose reasonably clear and distinguishable from sibling MCP tools by its scaffolding action, though it does not explicitly name any sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus related siblings such as yaaif_mcp_link_or_create, yaaif_mcp_server_refresh, or yaaif_mcp_deployment_create. No conditions, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_server_getB
Get one external MCP server (and its tools) by id.
| Name | Required | Description | Default |
|---|---|---|---|
| server_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says 'Get' but does not state whether the operation is read-only, whether it contacts the external MCP server directly for live tools or returns cached data, or what failure modes might occur. This is a significant gap for a tool managing external resources.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and the object without any filler or repetition. Every word contributes to understanding the tool's core behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple, the complete absence of annotations, an output schema, and property descriptions means the description must provide enough context for correct invocation. It misses key details such as how to obtain a valid server_id, whether a live remote call is made, and whether any state changes occur, leaving an agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines only server_id as a bare string with no property description, and schema coverage is 0%. The tool description adds no parameter-level detail: it does not explain the ID format, where to find it, or whether it is a UUID or name. The description fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a concrete resource ('one external MCP server (and its tools)'), and a clear qualifier ('by id'). This distinguishes it from sibling tools like yaaif_mcp_servers_list (which lists servers) and yaaif_mcp_tool_get (which retrieves an individual tool), making the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by id' implies the caller needs a known server ID, but there is no explicit guidance on when to prefer this tool over listing servers or refreshing server data. It does not mention alternatives such as yaaif_mcp_servers_list for discovering IDs or yaaif_mcp_server_refresh for stale data, so usage context is only weakly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_server_refreshC
Refresh tools from a registered external MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
| server_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Refresh' implies a mutating operation, but the description does not explain side effects such as whether existing tools are replaced, whether the server is queried live, whether the operation is idempotent, or what happens if the server is unavailable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the verb and resource. There is no wasted wording, and the core operation is communicated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one required parameter, so the minimal description is not entirely inadequate. However, it lacks usage context, behavioral details, and parameter explanation, making it sufficient only for the most straightforward invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not clarify what server_id refers to beyond the implied 'registered external MCP server.' It does not state the expected format, where to obtain the ID, or how the ID relates to entries returned by yaaif_mcp_servers_list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('refresh'), a resource ('tools'), and a scope ('from a registered external MCP server'). It is clear enough for an agent to understand the basic operation, though it does not explicitly differentiate from related refresh/redeploy siblings like yaaif_mcp_deployment_redeploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention prerequisites, when a refresh is needed, or how it differs from yaaif_mcp_deployment_register, yaaif_mcp_deployment_redeploy, or yaaif_skill_refresh.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_servers_listB
List registered external MCP servers in the tenant catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It states only that it lists servers, which implies a read-only operation, but does not explicitly confirm safety, mention pagination, or note any side effects. It is not misleading but is minimally informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the purpose without any fluff. It is appropriately sized for a simple list operation, though it sacrifices detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two optional parameters, no output schema, and no annotations, yet the description provides no information about parameter behavior, return format, or pagination. An agent cannot infer how to use 'q' or 'limit' or what the result looks like. The description is too sparse for a tool with this many related siblings and potential ambiguities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention the 'q' or 'limit' parameters at all. Since the schema provides no descriptions and the description adds nothing, an agent has no idea what these parameters control or how to format them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (list) and resource (registered external MCP servers) with a scope (tenant catalog). It distinguishes from siblings like yaaif_mcp_deployments_list (deployments vs servers) and yaaif_mcp_tools_list (tools vs servers) by naming the exact resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There are several related list tools (e.g., yaaif_mcp_deployments_list, yaaif_mcp_tools_list) but the description does not mention them or provide any decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_tool_getB
Get one external MCP tool by id.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself must convey behavioral traits. 'Get' implies a read-only operation, but the description does not disclose what happens for invalid or missing ids, whether authentication is required, or whether any remote MCP server is contacted. It is not misleading, but it is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant wording. It states the action, object, and retrieval criterion efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description is minimally viable. However, with no output schema and no annotations, it leaves the return shape, error behavior, and relationship to similar get/list tools unexplained. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single 'tool_id' parameter. It only says 'by id', which adds no detail about what kind of id is expected, how to obtain it, or its format. The parameter name is somewhat self-explanatory, but the description does not enrich it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('one external MCP tool'), and the retrieval key ('by id'). It also differentiates itself from sibling listing tools like yaaif_mcp_tools_list by emphasizing 'one' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as yaaif_mcp_tools_list, yaaif_mcp_server_get, or yaaif_local_tool_get. There are no explicit conditions, exclusions, or recommended sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_mcp_tools_listC
List external MCP tools in the tenant catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the operation. It does not mention read-only safety, pagination behavior, or result format. The verb 'List' implies a read operation, but no explicit behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero filler. It immediately conveys the tool's purpose, making it easy for an agent to parse. Conciseness is appropriate for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too sparse for an agent to fully invoke the tool correctly. It leaves the meaning of q and limit unspecified, and with no annotations or output schema, the agent lacks information about expected return values. The tool is simple, but the description still has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has two parameters (q and limit) with 0% description coverage, and the description does not mention either. An agent cannot infer what 'q' filters on or how 'limit' behaves. The description provides no compensation for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('external MCP tools') and scope ('tenant catalog'). This distinguishes it from sibling tools like yaaif_local_tools_list (local tools) and yaaif_mcp_servers_list (servers, not tools).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as yaaif_mcp_tool_get or yaaif_local_tools_list. There are no exclusions, conditions, or alternative routing hints. The context is clear but the description fails to help an agent choose correctly among many similar list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_ambient_run_getA
READ-ONLY: ambient workflow run detail + diagnostic failures for a run_id, plus run_path (coverage/path/current step/canvas URL).
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description correctly carries the behavioral burden by explicitly declaring the operation READ-ONLY, which signals no mutation side effects. It also discloses what the result contains: run detail, diagnostic failures, and run_path data. It does not describe error behavior, auth requirements, or size limits, but the read-only declaration and result summary provide meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It leads with the important READ-ONLY safety signal, states the resource and operation, then lists the distinct result components concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and return categories, but with no output schema and no annotations, it does not fully describe the return structure, failure diagnostic shape, or how max_chars/max_items/summary_only affect results. The tool is relatively simple, so the gaps are moderate rather than severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%: max_chars, max_items, and summary_only already have meaningful descriptions in the schema. Run_id has no schema description, and the tool description only mentions 'for a run_id' without adding format or semantics. The description adds little parameter meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a read-only detail operation for an ambient workflow run identified by run_id, and enumerates the returned content: diagnostic failures and run_path coverage/path/current step/canvas URL. It is unambiguous about the resource and operation, though it does not explicitly differentiate itself from the sibling yaaif_ambient_run_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call this when you need ambient workflow run detail plus diagnostic failure information for a specific run_id. However, it provides no explicit guidance about when to prefer this over sibling tools such as yaaif_ambient_run_get, yaaif_ambient_runs_list, or yaaif_ops_ambient_worker_logs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_ambient_worker_logsC
READ-ONLY: ambient worker logs. Alias of yaaif_ops_telemetry resource=ambient_logs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| include_raw | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) | |
| ambient_run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description declares READ-ONLY, which is a key behavioral trait. However, no annotations are provided, so the description must carry the full burden of behavioral disclosure. It does not mention what happens if ambient_run_id is invalid, nor does it describe the shape of the result or any potential errors. The alias relationship is disclosed but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and gets the key point across quickly, with the READ-ONLY warning front-loaded. It is one sentence, which is appropriately minimal for a simple alias.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, one required, and no output schema, the description is insufficient. It does not explain how to construct a valid call beyond the alias, nor what the results look like. The agent might understand it is a log fetcher but lacks details on filtering, pagination, and output format. The alias is helpful but not complete for a parameter-rich tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, and the description does not explain the meaning of any parameters beyond the bare names. Several parameters (ambient_run_id, limit, offset, include_raw) lack schema descriptions, and the description does not compensate. The agent is left to guess at their semantics, especially ambient_run_id and include_raw.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it is a read-only alias for ambient worker logs, and identifies the underlying resource. It distinguishes itself from other log tools like yaaif_ops_desktop_worker_logs, but does not explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says it is an alias, which implies it can be used when you need ambient worker logs, but there is no explicit guidance on when to prefer this over the underlying telemetry resource or other log tools. No exclusions or prerequisite conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_analyzeA
READ-ONLY: one-shot incident analysis — correlate IDs, rank failures, and return next_steps. When an ambient run is linked, also includes run_path (coverage/path/current step/canvas URL). Prefer this first; then yaaif_ops_telemetry for drill-down.
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| request_id | No | ||
| session_id | No | ||
| include_raw | No | Requires ops.support.raw; default false | |
| summary_only | No | Prefer compact links/failures (default true for analyze) | |
| ambient_run_id | No | ||
| desktop_run_id | No | ||
| harness_run_id | No | ||
| include_live_diag | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It prominently declares READ-ONLY, one-shot semantics, and the conditional run_path inclusion, which are important traits for safe invocation. It does not cover permissions, rate limits, or failure behavior, but the key safety-relevant behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler, front-loading READ-ONLY and the core purpose. The telemetry routing sentence is concise and actionable, earning its place without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 optional parameters and no output schema, the description gives a reasonable overview but leaves important invocation details unspecified. It states key outputs like next_steps and run_path, but does not clarify how the run IDs relate, what the query scope is, or what the returned structure looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, and the description does not compensate for the undocumented parameters. It alludes to 'correlate IDs' but does not explain ambient_run_id, desktop_run_id, harness_run_id, include_raw, summary_only, include_live_diag, max_chars, or max_items in any useful detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: one-shot incident analysis that correlates IDs, ranks failures, and returns next_steps. It also distinguishes itself from yaaif_ops_telemetry by framing itself as the first-line analysis tool, so an agent can tell what it does at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Prefer this first; then yaaif_ops_telemetry for drill-down,' which gives clear ordering and a concrete alternative. It does not exhaustively compare against all other ops siblings, but the guidance is actionable enough for typical selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_correlateA
READ-ONLY: correlate session_id / ambient_run_id / desktop_run_id / request_id into one incident graph with failure summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| analyze | No | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| request_id | No | ||
| session_id | No | ||
| include_raw | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) | |
| ambient_run_id | No | ||
| desktop_run_id | No | ||
| harness_run_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the explicit 'READ-ONLY' prefix is a meaningful behavioral disclosure that tells the agent this tool has no side effects. It also names the output shape. However, it does not disclose how analyze/include_raw affect behavior or whether any background computation occurs, so it is not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. The READ-ONLY safety signal comes first, followed by the action and output, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 optional parameters, no annotations, no output schema, and only 30% schema coverage, this one-sentence description is too thin. It does not explain parameter relationships, defaults, output structure, or how an agent should choose which IDs to supply, leaving significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 30%, so the description must compensate for undocumented parameters. It does add meaning by identifying four ID parameters as correlation keys, but it leaves harness_run_id, analyze, include_raw, and others unexplained in both schema and description. This is insufficient for a 10-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('correlate'), a precise set of resources (session_id, ambient_run_id, desktop_run_id, request_id), and a distinct output ('one incident graph with failure summaries'). This clearly separates it from single-ID getter tools like yaaif_ops_session_get or yaaif_ops_ambient_run_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when multiple ID types need to be tied together into a single incident view, but it does not explicitly state when to use this over alternatives such as yaaif_ops_analyze or yaaif_ops_diagnosis_create. No exclusions or conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_desktop_run_getB
READ-ONLY: desktop worker run detail + failure findings for a run_id.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly declares READ-ONLY, which is a valuable behavioral signal, and describes the output as 'run detail + failure findings'. However, it does not disclose pagination behavior, size limits, or any potential side effects beyond the read-only hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately signals READ-ONLY and states the resource. Every word earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters and no output schema, the description is minimal. It omits what run_id refers to, how the optional parameters affect the result, and what the return structure looks like. An agent would need to infer much from the schema and sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema documents three of four parameters. The description adds little beyond naming run_id as the input; it does not explain what run_id represents, its format, or how it relates to the other params. The description does not compensate for the undocumented run_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action (get), the resource (desktop worker run detail plus failure findings), and the key parameter (run_id). It clearly distinguishes from list tools by focusing on a single run's detail and failure findings, though it doesn't explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention that it complements yaaif_ops_desktop_runs_list or how it differs from yaaif_ops_ambient_run_get. The READ-ONLY label hints at safety but not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_desktop_runs_listB
READ-ONLY: list desktop runs for a session_id (optional status filter).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| session_id | Yes | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only discloses the read-only nature and the optional status filter, but omits behavior like response format, pagination limits, or how max_chars/max_items affect results. Given the presence of parameters that alter output, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero fluff. 'READ-ONLY' is prioritized, followed by the purpose and filter. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no output schema and no annotations, this description is insufficient. It does not describe the output shape, how the parameters influence results, or how it differs from other list tools. An agent cannot fully anticipate the tool's behavior or when to select it over siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% (max_chars, max_items, summary_only have descriptions). The description adds meaning for session_id (required scope) and status (optional filter), which are undocumented in the schema. However, it does not elaborate on value formats or constraints, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), the resource (desktop runs), and the scope (session_id), with an optional status filter. This distinguishes it from sibling tools like yaaif_ops_desktop_run_get (singular) and yaaif_ambient_runs_list (ambient runs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing desktop runs per session but does not explicitly mention when not to use it or contrast with alternative list tools. It relies on the agent inferring context from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_desktop_worker_logsC
READ-ONLY: desktop worker logs. Alias of yaaif_ops_telemetry resource=desktop_logs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| include_raw | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) | |
| desktop_run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does state READ-ONLY and accurately frames the tool as a telemetry alias, which is useful safety context. However, it says nothing about ordering, filtering, defaults, truncation behavior, or operational caveats, leaving significant behavior unexplained for a 7-parameter tool without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is terse and front-loaded with the READ-ONLY notice, avoiding wasted words. Each clause contributes useful information about the resource or alias relationship. However, given the tool's complexity and lack of annotations, this brevity reads as under-specification rather than efficient completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a logs tool with no annotations, no output schema, and six optional parameters whose behavior is mostly undocumented, this description is not complete enough for reliable invocation. It establishes the core resource and safety profile but leaves pagination, defaults, result shape, and the required desktop_run_id relationship to inference. The alias merely defers the burden to another tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, and the description adds no direct parameter meaning. desktop_run_id, limit, offset, and include_raw are not explained beyond the schema field names, and the alias does not clarify their semantics. The description fails to compensate for the sparse schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as desktop worker logs and marks the operation READ-ONLY. The alias reference to yaaif_ops_telemetry with resource=desktop_logs pinpoints the underlying data source. It does not explicitly contrast with related tools like yaaif_ops_ambient_worker_logs or yaaif_mcp_deployment_logs, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance beyond the alias statement. An agent learns this tool equals yaaif_ops_telemetry resource=desktop_logs, but there is no condition, exclusion, or comparison to alternatives such as yaaif_ops_desktop_run_get or yaaif_ops_session_events. The intended context is only implicit in the phrase 'desktop worker logs.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_diagnosis_createA
Write a confirmed OpsDiagnosisRecord back to YAAIF (append-only). Requires confirm=true after presenting the full draft to the user. Does not pause/stop/approve/retry runs. Requires ops.support.write.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| intent | Yes | ||
| source | Yes | ||
| confirm | Yes | Must be true after explicit user confirmation | |
| summary | Yes | ||
| failures | Yes | ||
| severity | Yes | ||
| canvas_url | No | ||
| ide_client | No | ||
| next_steps | Yes | ||
| session_id | No | ||
| request_ids | No | ||
| diagnosed_at | No | RFC3339 timestamp; server may normalize | |
| path_reached | No | ||
| path_executed | No | ||
| ambient_run_id | Yes | ||
| coverage_total | No | ||
| desktop_run_id | No | ||
| harness_run_id | No | ||
| partial_errors | No | ||
| status_ambient | No | ||
| status_desktop | No | ||
| status_harness | No | ||
| status_session | No | ||
| current_step_id | No | ||
| coverage_reached | No | ||
| evidence_analyze | Yes | ||
| evidence_telemetry | No | ||
| current_step_status | No | ||
| diagnostics_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the write nature (append-only), the confirmation requirement, the permission requirement, and that it doesn't affect run execution. It also implies a process of presenting the full draft. This is transparent about side effects and prerequisites, though it doesn't describe return values (but no output schema is provided).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loading the core purpose and then adding prerequisites. Every sentence adds information; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (30 params, 11 required, nested objects) and very low schema coverage, the description is far from sufficient. It doesn't explain what constitutes the full draft, how to fill the required fields, or what the append-only record expects. An agent would have to infer most parameters, which is risky for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 7%, so the description must compensate for the 30 parameters. It only mentions confirm=true, which is already described in the schema ('Must be true after explicit user confirmation'). It adds no meaning to other required fields like intent, severity, failures, etc. This is a significant gap for an agent trying to construct a valid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('write') and resource ('OpsDiagnosisRecord') and explicitly notes it is append-only. It also clarifies it does not pause/stop/approve/retry runs, clearly distinguishing it from sibling tools like yaaif_ambient_run_pause or yaaif_ops_diagnosis_list/get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: requires confirm=true after presenting the full draft, and requires ops.support.write permission. It also states exclusions (does not pause/stop/approve/retry runs). However, it does not explicitly name alternative tools or state when not to use this tool beyond the exclusion list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_diagnosis_getA
READ-ONLY: fetch one confirmed ops diagnosis by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It usefully declares READ-ONLY, which is a key safety trait, and 'confirmed' hints at a status filter. However, it does not disclose error behavior, permissions, or what happens when the id is invalid or not found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero filler. It leads with READ-ONLY and states the action and resource clearly, making it instantly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is conceptually simple, but with no output schema and no annotations, the description leaves some ambiguity about what a 'confirmed' diagnosis is and how the returned data is structured. It is adequate for a simple get-by-id, but could benefit from a pointer to related list/analyze tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, and the schema already documents max_chars, max_items, and summary_only. The description adds minimal meaning by linking the required 'id' to a diagnosis, but it does not elaborate on how the optional parameters shape the result beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (fetch), the resource (one confirmed ops diagnosis), and the access pattern (by id). This distinguishes it from siblings like yaaif_ops_diagnosis_list and yaaif_ops_diagnosis_create without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a specific diagnosis id is already known, but it never explicitly names alternatives or says when not to use it. There is no guidance to consult yaaif_ops_diagnosis_list to obtain ids or to prefer other tools for bulk retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_diagnosis_listA
READ-ONLY: list prior confirmed ops diagnoses (newest first). Provide exactly one of ambient_run_id, session_id, or desktop_run_id. Call before yaaif_ops_analyze so prior findings inform triage.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| session_id | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) | |
| ambient_run_id | No | ||
| desktop_run_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden; it leads with 'READ-ONLY' and adds 'newest first' and 'prior confirmed' status, covering the main behavioral expectations for a listing tool. It does not discuss auth, rate limits, or failure behavior, but those are less central for a read-only list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with READ-ONLY and the core list semantics. Every sentence contributes a constraint or workflow context, and there is no redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the definition still covers the invocation essentials: action, ordering, parameter cardinality, and correct place in the triage workflow. It is somewhat thin on return shape and the effect of summary_only or limits in this list context, but the information most likely to prevent a mis-call is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43%, and the three ID parameters have no schema descriptions; the description compensates with the critical 'exactly one of' cardinality rule. Other parameters like limit, max_chars, max_items, and summary_only are left to schema descriptions or parameter names, so the compensation is strong but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action ('list'), the object ('prior confirmed ops diagnoses'), and result ordering ('newest first'). The READ-ONLY framing and 'confirmed' qualifier distinguish it from siblings like yaaif_ops_diagnosis_get and yaaif_ops_diagnosis_create. This is a specific verb+resource definition with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit workflow context: 'Call before yaaif_ops_analyze so prior findings inform triage.' It also constrains invocation to exactly one of the three run/session IDs. It does not spell out when-not-to-use or name alternative get/create tools, so it falls just short of full exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_flow_eventsB
READ-ONLY: flow-events by request_id. Alias of yaaif_ops_telemetry resource=flow_events.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| request_id | Yes | ||
| include_raw | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explicitly states READ-ONLY, which is a useful safety signal, but it does not disclose output format, pagination behavior, default limits, or how include_raw/summary_only affect results. The schema hints at some behavior, but the description itself is too thin for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The read-only warning is front-loaded, followed by the resource and the alias relationship. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and seven parameters, this description is too minimal. It does not explain what the returned flow events look like, how pagination works, what the default limits are, or how the summary/raw options behave. An agent would need to inspect the schema or guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, so the description must compensate for undocumented parameters. It adds meaning for request_id by identifying it as the filter, but it does not explain limit, offset, include_raw, or summary_only. The schema covers max_chars, max_items, and summary_only, leaving several parameters without meaningful guidance from either source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (flow-events), the primary filter (request_id), and the read-only nature. The alias reference to yaaif_ops_telemetry resource=flow_events helps distinguish it from the generic telemetry tool. It lacks an explicit verb like 'list' or 'retrieve', but the intent is still clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The alias statement gives clear context: this is the flow-events-specific view of telemetry, implying it should be used when flow events for a request_id are needed. It references yaaif_ops_telemetry as the broader alternative. It does not explicitly state when not to use it or mention other event-related siblings, but the guidance is sufficient for basic routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_session_eventsB
READ-ONLY: LLM session events. Alias of yaaif_ops_telemetry resource=events.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| session_id | Yes | ||
| include_raw | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the key safety trait 'READ-ONLY' and the alias relationship, which is useful. But it does not describe output shape, ordering, pagination behavior, or what 'events' actually contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the most important signal (READ-ONLY) followed by the resource and alias. There is no filler, but it is terse enough that it sacrifices useful behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no output schema, and no annotations, this one-line description is insufficient. An agent cannot determine what event data is returned, how session_id is interpreted, or how flags like include_raw and summary_only alter the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, and the description mentions no parameters at all. It does not compensate for undocumented params like session_id, limit, offset, or include_raw. The alias note only explains the fixed resource=events mapping, not parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource ('LLM session events') and marks the operation as READ-ONLY, which is specific and recognizable. The alias note ties it to yaaif_ops_telemetry resource=events, providing a clear identity, though it does not use an explicit verb like 'list' or 'get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The alias statement ('Alias of yaaif_ops_telemetry resource=events') implies the agent should use this when it wants telemetry events for a session, and it names an equivalent alternative. However, it gives no explicit when-to-use guidance versus siblings like yaaif_ops_session_messages or yaaif_ops_flow_events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_session_getB
READ-ONLY: LLM/flow session metrics detail + derived failure findings for a session_id.
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| session_id | Yes | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It explicitly states READ-ONLY, which clarifies safety, and indicates it returns derived failure findings. However, it does not explain how findings are derived, what the returned structure looks like, or how paging/size caps affect results beyond what the schema already says.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the READ-ONLY safety signal, then a concise statement of outputs and the required input. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema or annotations, the description should provide more context about the response shape, the meaning of 'derived failure findings', and how this tool relates to neighboring ops session tools. It is enough to guess the call, but not enough to fully anticipate behavior or results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (75%), and the schema already documents max_chars, max_items, and summary_only. The description adds little beyond repeating 'session_id', and notably the required session_id parameter has no schema description and no additional semantic clarification about format or source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: it returns LLM/flow session metrics detail and derived failure findings for a session_id. The READ-ONLY prefix and resource mention give a clear verb+resource pairing, though it does not explicitly differentiate from sibling session tools like yaaif_ops_session_messages, yaaif_ops_session_events, or yaaif_ops_session_insights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to choose this tool over alternatives. The description does not mention conditions, exclusions, or sibling tools, so an agent must infer usage from the name and sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_session_insightsD
READ-ONLY: flow-session insights. Alias of yaaif_ops_telemetry resource=insights.
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| session_id | Yes | ||
| include_raw | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description declares READ-ONLY, which is a useful behavioral cue. However, with no annotations provided, the description must carry the full burden of behavioral disclosure. It reveals nothing about side effects, performance characteristics, output size, or pagination behavior, leaving agents to guess.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification, not conciseness. It omits essential information, so the brevity is not a virtue. A well-structured concise description would still convey purpose, usage, and key behaviors.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, no output schema, and no annotations. The description must explain what insights are, how to interpret results, and what the parameters control, but it does none of that. It is completely inadequate for an agent to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds zero information about parameters. Schema coverage is 60% (3 of 5 parameters have descriptions), but session_id and include_raw lack descriptions, and the description doesn't compensate. It offers no hints about parameter meaning, defaults, or interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'flow-session insights' but lacks a specific verb or resource. It is an alias of yaaif_ops_telemetry resource=insights, but this cryptic reference doesn't clarify what the tool actually returns or does. It doesn't distinguish from siblings like yaaif_ops_session_get or yaaif_ops_session_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The alias reference is ambiguous and doesn't explain when to prefer this over yaaif_ops_session_get, yaaif_ops_telemetry, or other ops tools. No conditions or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_session_messagesC
READ-ONLY: LLM transcript messages. Alias of yaaif_ops_telemetry resource=messages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| session_id | Yes | ||
| include_raw | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'READ-ONLY', which is a valuable safety indicator. However, it does not disclose any other behaviors such as authentication requirements, error handling, pagination behavior, or what happens when the session does not exist. The alias to telemetry is mentioned but not elaborated, so the behavioral profile remains thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loading the critical 'READ-ONLY' label. It is efficient and to the point. However, the extreme brevity borders on under-specification, but that is a completeness issue, not a structure issue. The sentence earns its place by stating purpose and alias.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 7-parameter tool with no output schema and no annotations. The description is a one-liner that gives no context about return format, usage examples, or parameter behavior. An agent has almost no information to correctly invoke this tool beyond guessing from the name. The lack of any guidance on the meaning of limit, offset, or include_raw makes it severely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43% (3 of 7 parameters have descriptions). The description does not compensate at all – it mentions no parameter details, semantics, or relationships. For a tool with 7 parameters, this is a critical gap. Even the required session_id is left undocumented, making it hard for an agent to know how to construct a correct call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is READ-ONLY and retrieves 'LLM transcript messages', and identifies it as an alias of yaaif_ops_telemetry with resource=messages. This distinguishes it from other ops tools like yaaif_ops_session_events and yaaif_ops_session_insights. However, it lacks an explicit verb like 'list' or 'get', making the action slightly less direct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It only mentions the alias, which hints at equivalence but does not explain selection criteria or exclusions. An agent gets no help deciding between this and other session-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_ops_telemetryB
READ-ONLY: unified telemetry drill-down via agent-service /api/ops (proxies telemetry-service). resource=messages|events|flow_events|insights|desktop_logs|ambient_logs. Prefer after yaaif_ops_analyze.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| resource | Yes | ||
| max_chars | No | Soft JSON size cap for the tool result | |
| max_items | No | Cap items/events/logs arrays (default 40) | |
| request_id | No | Required for flow_events | |
| session_id | No | Required for messages, events, insights (comma-separated ok for insights) | |
| include_raw | No | ||
| summary_only | No | Prefer compact links/failures (default true for analyze) | |
| ambient_run_id | No | Required for ambient_logs | |
| desktop_run_id | No | Required for desktop_logs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does declare 'READ-ONLY', which is a critical behavioral trait, and notes the tool proxies telemetry-service. It does not describe output format, pagination behavior, or side effects beyond the read-only nature. The schema hints at caps (max_items default 40) and summary options, but the description itself adds little beyond the read-only label. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences with no filler. It front-loads the read-only attribute, states the resource list, and gives a usage hint. Every word earns its place. Perfectly sized for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 11 parameters, six resource types, and no output schema. The description provides only a high-level summary and a usage hint, but does not explain how to assemble the correct parameter set for each resource, what the tool returns, or how to interpret results. The schema fills some gaps (required identifiers, caps), but the description does not synthesize the operational workflow. For an agent to use this tool correctly across all resource types, it would need to parse the schema descriptions carefully; the description alone is insufficient. Given the complexity, a 2 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 64%, meaning some parameters (limit, offset, include_raw, summary_only) lack descriptions in the schema. The tool description lists the resource enum values, but those already appear in the schema. It does not explain the conditional relationships between resource and identifier parameters (e.g., that session_id is required for messages, events, insights; request_id for flow_events; ambient_run_id for ambient_logs; desktop_run_id for desktop_logs) — though the schema does describe these per parameter. The description adds minimal value over the schema and fails to compensate for the undocumented parameters, so a score of 2 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a READ-ONLY telemetry drill-down tool with a resource parameter that enumerates six telemetry types. It mentions the underlying service path and proxy, and gives a usage preference ('Prefer after yaaif_ops_analyze'). However, it does not explicitly contrast with the many sibling tools that target specific resources (e.g., yaaif_ops_session_messages, yaaif_ops_flow_events), so an agent might not immediately know when to use this unified tool versus the dedicated ones. Still, the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear sequential hint: 'Prefer after yaaif_ops_analyze', which tells the agent when in a workflow this tool fits. It does not, however, state when NOT to use it, nor does it name alternatives like the dedicated session/worker log tools, nor explain the conditional identifier requirements (e.g., which param is needed per resource). The guidance is minimal but present, earning a mid-range score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_plan_dry_runB
Dry-run an execution plan: echo intended tool calls without mutating the tenant. Optionally check catalog refs.
| Name | Required | Description | Default |
|---|---|---|---|
| actions | Yes | ||
| expected | No | ||
| verify_catalog | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the key side-effect guarantee ('without mutating the tenant') and the echo behavior. It does not describe output shape, error conditions, or what 'check catalog refs' entails, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the core purpose front-loaded in the first clause. It contains no filler, though the second sentence about catalog refs is terse and could be more informative without adding much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, nested objects, zero schema description coverage, no annotations, and no output schema, the description is too thin. It lacks any explanation of the 'expected' parameter, what the tool returns, and how it relates to sibling plan tools, so an agent would have trouble invoking it correctly in non-trivial cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds some meaning for 'actions' ('intended tool calls') and partially for verify_catalog ('check catalog refs'), but completely omits the 'expected' parameter, which has a complex nested object structure. The description does not explain the action item shape or the meaning of expected lists, leaving agents to infer critical parameter semantics from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Dry-run an execution plan') and a concrete behavioral outcome ('echo intended tool calls without mutating the tenant'). It distinguishes the tool from execution-oriented siblings through the explicit no-mutation guarantee, though it does not name any sibling tool directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'dry-run' framing plus 'echo ... without mutating' gives a clear context for when to use this tool: to preview a plan safely before executing it. However, it does not explicitly contrast with alternatives like yaaif_plan_verify or yaaif_plan_execution_save, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_plan_execution_getC
Load a saved plan execution by slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Load', which implies read-only retrieval, but it does not explicitly state that the plan is not executed or resumed, nor does it mention error behavior or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description is minimally viable, but it leaves gaps: no output schema exists, and the description does not clarify what 'load' returns or that it is a non-mutating read. It is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the only parameter is 'slug'. The description merely repeats that the operation is 'by slug', adding little beyond the parameter name itself. It does not explain what a slug is, its format, or where to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Load') and a clear resource ('a saved plan execution') with a lookup key ('by slug'). It is clear enough to distinguish from siblings like plan_execution_list, though it does not explicitly name or contrast alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus siblings such as yaaif_plan_execution_list, yaaif_plan_execution_resume, or yaaif_plan_execution_update_step. The agent is left to infer that 'get' is for retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_plan_execution_listA
List saved plan executions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral details. It only states the action without disclosing that it is read-only, what it returns, or any side effects. While it implies a list operation, it does not explicitly state that it does not modify data or what the response structure is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It is front-loaded and gets straight to the point, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description is adequate but minimal. It does not mention that the operation returns a list of saved executions, nor does it hint at any filtering or sorting. Given the tool's simplicity, this is a minor gap, but it could be improved by stating the return type or clarifying scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to describe beyond what the schema already indicates. With no params, the baseline is 4, and the description adds no unnecessary detail about parameters, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List saved plan executions.' clearly states the action (list) and the resource (saved plan executions). It distinguishes from siblings like yaaif_plan_execution_get (single) and yaaif_plan_execution_save (create) by its plural and specific scope. An agent can easily identify this as the listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. There is no mention of typical use cases, prerequisites, or that it returns all saved executions. The description does not contrast with yaaif_plan_execution_get or other list operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_plan_execution_resumeB
Refresh Scenario readiness/version before returning the next pending step. Halt for unresolved sync conflicts or failed verification evidence rather than repeating mutations.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does add useful behavior: it refreshes readiness/version, halts on unresolved sync conflicts or failed verification evidence, and avoids repeating mutations. It still omits details about permissions, error behavior, or what happens after halting, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, dense sentences with no filler. The primary action is front-loaded, and the second sentence adds meaningful safety behavior. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description gives a reasonable high-level view: it refreshes state, returns the next pending step, and halts under unsafe conditions. It lacks parameter explanation and concrete success/error semantics, but it is minimally viable for an agent to get oriented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented 'slug' parameter. It does not explain what slug refers to, how to obtain it, or what format is expected. The single parameter name is somewhat self-evident, but the description adds no semantic value to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation: refresh Scenario readiness/version and return the next pending step. This goes beyond a tautology and gives an agent a distinct understanding of the tool's role, though it does not explicitly distinguish it from sibling plan-execution tools like yaaif_plan_execution_update_step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing 'before returning the next pending step' implies this tool is used when resuming or advancing a plan execution, and the halt condition provides some when-not-to-continue guidance. However, it never names alternatives or explains the exact circumstances that should lead an agent to choose this tool over plan_execution_get or plan_execution_update_step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_plan_execution_saveB
Persist a plan execution checklist (step statuses + result ids) in the active YAA\F client state directory for resume.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| steps | Yes | ||
| spec_id | No | ||
| plan_path | No | ||
| spec_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing side effects. It does state that data is persisted to the active YAA\F client state directory and that the purpose is resume, which is useful. It omits overwrite or replacement semantics, whether an existing slug is updated or rejected, and any requirements about the active client state directory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, and the key action is front-loaded. Minor clarity issues such as the awkward 'YAA\F' token and the compact 'for resume' phrasing keep it from a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters, nested step objects, no annotations, and no output schema, yet the description remains a single sentence. It gives no guidance on required identifiers, optional metadata, or the relationship to the closely named plan_execution_* siblings, so an agent is under-specified when constructing a valid call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only maps to two fields: 'step statuses' (status) and 'result ids' (result_ids). It does not explain slug, spec_id, plan_path, spec_version, or nested step fields like id, tool, arguments, error, and note, leaving the agent to guess from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Persist' and a concrete resource ('plan execution checklist'), and adds the storage destination and purpose. It does not explicitly name or contrast sibling tools such as yaaif_plan_execution_update_step or yaaif_plan_execution_resume, so sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for resume' gives a clear intended context: save the checklist when execution needs to be continued later. However, no alternatives or exclusions are mentioned; nothing tells an agent to prefer yaaif_plan_execution_update_step for single-step mutations or how save relates to the other plan_execution_* tools. The guidance is therefore implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_plan_execution_update_stepA
Update one step status/result_ids on a saved plan execution (call after each mutate).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| error | No | ||
| status | Yes | ||
| step_id | Yes | ||
| result_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It names the mutation and the target, but does not explain overwrite semantics, idempotency, side effects, prerequisites beyond 'saved', or what happens when status is set to different enum values. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every element contributes: what is updated, on what resource, and when to call it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, five parameters, and 0% schema description coverage, this one-line description is not enough. The agent still lacks explanation of how to identify the plan execution and step, what result_ids should look like, and how error/status interact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the schema's silence. It mentions 'status/result_ids' but does not clarify slug, step_id, error, the result_ids object structure, or the meaning of the status enum values. It adds only partial meaning to two of five parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Update'), a specific resource ('one step status/result_ids on a saved plan execution'), and a clear scope. This distinguishes it from sibling plan tools like plan_execution_save or plan_execution_resume, which operate at the whole-execution level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(call after each mutate)' provides an explicit usage trigger, telling the agent when in the workflow this tool should be invoked. It does not explicitly name alternatives or exclusions, but the timing guidance is clear enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_plan_verifyB
Diff expected plan components (agent/skill/workflow/MCP/local-tool names) against the live tenant catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| spec_id | No | ||
| skill_ids | No | ||
| agent_names | No | ||
| spec_version | No | ||
| mcp_tool_names | No | ||
| workflow_names | No | ||
| local_tool_names | No | ||
| ambient_agent_names | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral disclosure. The term 'diff' hints at a read-only comparison, but the description does not explicitly state whether the tool has side effects, what permissions are required, what the output format looks like, or how missing components are reported. This is a significant gap for a plan verification tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It clearly conveys the core operation and the scope of the diff in a compact form, which is ideal for quick agent scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no output schema and no annotations, the description is too sparse. It does not explain what the result of the diff looks like, how to interpret mismatches, or how this tool fits into the plan verification workflow. The agent would need external knowledge to use it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does map several parameter categories (agent_names, workflow_names, mcp_tool_names, local_tool_names), but it omits spec_id, spec_version, q, limit, and ambient_agent_names. It also refers to 'skill names' while the schema uses skill_ids, creating a mismatch. Half the parameters remain completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Diff' and clearly identifies the resource: expected plan components (agent/skill/workflow/MCP/local-tool names) against the live tenant catalog. This distinguishes it from siblings like yaaif_plan_dry_run or yaaif_skill_validate by focusing on a comparison/verification action rather than execution or creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it (to verify that plan components exist in the tenant catalog), but there is no explicit guidance about when to choose this over related tools like yaaif_skill_validate or yaaif_agent_spec_drift_scan. No alternatives or exclusions are mentioned, so the agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_platform_exportA
Export active profile as shell environment values for the active YAA\F client.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It does convey the output form (shell environment values) and 'export' conventionally implies a non-mutating read, giving some safety signal, but it omits output destination (stdout vs. returned string), auth requirements, and explicit confirmation of no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 13-word sentence that front-loads the verb and packs scope, output format, and target client into one clause. Every word earns its place; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description covers the essential invocation facts: what is exported, in what format, and for which client. It falls short of 5 only in not detailing the exact output syntax (e.g., KEY=VALUE vs. export KEY=VALUE lines) or how results are delivered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema description coverage is trivially 100%, so the baseline of 4 applies. There are no parameter semantics to add; nothing about the argument surface is left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (export), a resource (active profile), and an output form (shell environment values), making the operation clear at a glance and distinguishable from siblings like platform_list and platform_save. It stops short of 5 because it doesn't explicitly contrast with those siblings and the 'active YAA\F client' phrasing is slightly cryptic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as yaaif_platform_list or yaaif_platform_save, and no stated prerequisites (e.g., needing an active profile or authenticated session). The agent must infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_platform_listA
List builtin and custom YAA\F platform profiles (hosted, local-hybrid, local, …).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It correctly implies a read-only operation via 'List', but does not explicitly state read-only, nor does it mention any side effects, authentication requirements, or rate limits. For a simple list tool, this is adequate but leaves some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action ('List builtin and custom YAA\F platform profiles') and provides useful examples. There is no waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple, the description does not specify the return format or detail about the profiles (e.g., IDs, names, status). Since there is no output schema, the agent is left without any indication of what the list will contain. Some additional context about the result structure would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema is empty, so schema coverage is trivially 100%. The description does not need to explain any parameters because there are none. This aligns with the baseline of 4 for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'List builtin and custom YAA\F platform profiles' with specific examples (hosted, local-hybrid, local). It uses a specific verb and resource, and it distinguishes itself from sibling tools like yaaif_platform_use and yaaif_platform_export by being a listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the purpose is clear, the description does not explicitly state when to use this tool versus alternatives. There is no mention of exclusions or context like 'use this to see available profiles before selecting one'. The usage is implied by the verb 'list' but no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_platform_saveC
Save or update a custom platform profile in the active YAA\F client state directory.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| label | No | ||
| activate | No | ||
| description | No | ||
| api_base_url | Yes | ||
| extra_ca_file | No | ||
| agent_base_url | No | ||
| oidc_authority | Yes | ||
| oidc_client_id | No | ||
| client_key_file | No | ||
| client_cert_file | No | ||
| approval_base_url | No | ||
| control_plane_base_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a mutating operation ('save or update') but does not explain whether existing profiles are overwritten, whether 'activate' triggers side effects, how the active client state directory is selected, or what happens on conflict. These are meaningful gaps for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler or redundant phrasing. It front-loads the core action and resource. However, given the tool's parameter complexity, the brevity borders on under-specification, so it is concise but not optimally structured for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 13 parameters, no annotations, no output schema, and zero schema description coverage, this description is far from complete. It does not explain required parameters, update semantics, return values, error conditions, or side effects. An agent would struggle to invoke this tool correctly without additional external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no parameter-level semantics. With 13 parameters including required fields like id, oidc_authority, and api_base_url, an agent gets no help understanding what values are expected, how fields relate, or which optional parameters are meaningful for save versus update. The description does not compensate for the schema's lack of explanatory text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair ('Save or update') and names the resource ('custom platform profile') and target location ('active YAA\F client state directory'). This clearly distinguishes it from sibling tools like yaaif_platform_list, yaaif_platform_use, and yaaif_platform_export, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as yaaif_platform_use or yaaif_platform_export. The description states what the tool does but provides no context about prerequisites, typical invocation scenarios, or cases where a different platform tool should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_platform_useA
Switch active platform profile (hosted | local-hybrid | local | custom id). Clears session if OIDC issuer changes.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | Yes | ||
| clear_session_on_issuer_change | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does reveal a key side effect: 'Clears session if OIDC issuer changes.' This goes beyond the schema and is highly relevant for a state-changing tool, though it does not cover other potential behaviors such as failure modes or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one front-loaded sentence that immediately states the action, then adds the critical side effect. Every word contributes value, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no annotations and no output schema, the description covers the core purpose and the most important side effect, but it omits details like default behavior of the boolean flag, handling of invalid custom IDs, and what a successful switch returns or changes beyond the session.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning for profile_id by listing the allowed profile kinds (hosted, local-hybrid, local, custom id), but it does not clearly explain the clear_session_on_issuer_change boolean parameter beyond restating its name, nor does it define 'custom id' or how to discover valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Switch active platform profile') and enumerates the accepted profile values (hosted | local-hybrid | local | custom id). This clearly distinguishes it from platform siblings like yaaif_platform_list, yaaif_platform_export, and yaaif_platform_save.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when the active platform profile needs to be changed, but it does not explicitly state when to prefer it over alternatives or call out prerequisites such as retrieving available profiles first. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_roles_listA
List tenant RBAC role names (ADMIN, EDITOR, DEVELOPER, VIEWER, CHAT_USER, plus custom roles). Requires users:read.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the burden of behavioral disclosure. The description discloses a required permission ('Requires users:read.') which is valuable auth context. However, it does not mention the return format (e.g., a list of strings, object keys) or any sort/order guarantees, and being a read/list tool without annotations could benefit from a note on read-only nature (though the verb 'List' implies it).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loads the primary action ('List tenant RBAC role names') and enumerates roles immediately, then adds the permission note efficiently. Zero waste; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no params and no output schema, the description covers the main behavior and auth requirement. It misses an explicit statement that the result contains role names (implied by 'List... role names') and any grouping/filtering options (none exist). Could add a note on whether custom roles are only listed for the current tenant, but this is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0 parameters and coverage is 100%, so the schema leaves nothing to explain. The description adds no parameter info (none needed), but does add value by listing role names, which is more than the schema provides. Baseline is 3 due to zero-param tool; description could mention output format but isn't required for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Purpose is very specific: list tenant RBAC role names, with concrete enumeration of built-in role names (ADMIN, EDITOR, DEVELOPER, VIEWER, CHAT_USER) plus custom roles, and explicitly ties to a resource (tenant roles). It clearly distinguishes from sibling tools like yaaif_user_list (users) or yaaif_user_role_set (assignment) by naming roles as the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for listing roles, but provides no explicit when-to-use vs alternatives, nor exclusion cases. The role enumeration helps contextualize but doesn't state when listing roles is needed (e.g., before setting a user's role). With many sibling tools present, this gap is noticeable but not critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_session_files_listA
List session files via GET /api/files (REST). Set latest_only=true to return one row per artifact_name (latest version). Prefer yaaif_files_list / yaaif_load_artifacts for skill authoring.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| session_id | No | ||
| latest_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the HTTP method (GET) and the latest_only behavior, which imply read-only operation. However, it does not explicitly state there are no side effects, nor mention pagination, permissions, or how results are ordered, leaving some behavioral aspects ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The main action is front-loaded, followed by the latest_only behavior and the sibling routing guidance. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations, no output schema, and sparse parameter documentation. The description omits essential context: what a 'session' is, how to obtain session_id, what limit does, and how results are shaped. This leaves significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three parameters. It only explains latest_only; session_id and limit are left entirely unexplained. An agent cannot know what session_id refers to or what limit controls, making invocation risky.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('List session files') and the REST endpoint, then explicitly distinguishes from siblings by directing skill authoring to yaaif_files_list / yaaif_load_artifacts. This makes its role clear and prevents confusion with similar file-listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit when-not by saying 'Prefer yaaif_files_list / yaaif_load_artifacts for skill authoring,' naming concrete alternatives. However, it does not state a positive condition for when to use this tool (e.g., 'when you need session-specific files'), so the positive use case is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_set_tenantC
Set active tenant by UUID, name, or slug; activates on the server.
| Name | Required | Description | Default |
|---|---|---|---|
| tenant | No | ||
| tenant_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool 'activates on the server,' implying a state change, but does not disclose side effects, error conditions, idempotency, or impact on the current session. This is insufficient for an agent to understand the full consequences of calling the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary purpose. It contains no fluff and is easy to parse, but the brevity contributes to the lack of detail in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that changes state on the server, the description omits essential context such as which parameter to use for which identifier type, what happens if the tenant does not exist, and what the return value indicates. Given the absence of an output schema and annotations, this description is insufficient for an agent to confidently call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines two parameters, tenant and tenant_id, both strings, with no descriptions and zero schema description coverage. The description mentions that the tenant can be specified by UUID, name, or slug, but does not map these identifier types to the parameters, leaving ambiguity about whether tenant accepts names/slugs and tenant_id accepts UUIDs, or if both can accept any. This is a critical gap for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set active tenant) and the acceptable identifier types (UUID, name, slug), distinguishing it from listing tenants or other platform operations. It also clarifies the server-side activation, making the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention when not to use it. It does not reference sibling tools like list_tenants, leaving the agent to infer when switching the active tenant is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_createB
Create a skill pack in YAA\F (writes SKILL.md + skill_configs).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | No | ||
| tools | No | ||
| enabled | No | ||
| spec_id | No | ||
| slot_key | No | ||
| updated_by | No | ||
| description | Yes | ||
| instruction | Yes | ||
| allowed_tools | No | ||
| classification | No | ||
| include_examples | No | ||
| include_references | No | ||
| assigned_user_emails | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does add a meaningful side-effect detail ('writes SKILL.md + skill_configs'), making clear this is a file-writing mutation, but it does not disclose overwrite behavior, permission requirements, or what happens if the id already exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words, stating the action, the resource, and the write side-effect. It is appropriately short, though it sacrifices detail that could have been included without much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, 3 required fields, no annotations, no output schema, and 0% schema description coverage, the description is far from sufficient for correct invocation. The file-write hint helps, but the agent is left without essential information about parameter roles, required inputs, return behavior, or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 14 parameters with 0% schema description coverage, and the description adds no parameter-level meaning. The required fields id, description, and instruction are not mentioned or explained, so an agent has no guidance on what values to supply or how they map to SKILL.md and skill_configs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('a skill pack in YAA\F'), and clarifies the concrete output by noting it 'writes SKILL.md + skill_configs'. This clearly separates it from sibling tools focused on updating, validating, enabling, or reading skills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description does not mention alternatives such as yaaif_skill_update_module_files, yaaif_skill_edit_section, or yaaif_skill_validate, nor does it state that this is only for creating new skill packs rather than modifying existing ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_developD
Run platform skill_develop local tool.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Run', implying execution, but gives no information about side effects, required permissions, reversibility, return values, or error behavior. This is grossly insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but not effectively concise; it omits essential information. While it has no filler, it is under-specified to the point of being useless, so it fails the conciseness test.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no schema descriptions, no annotations, and no output schema, the description is completely inadequate. An agent cannot determine what this tool does, how to call it, or what to expect. It is nowhere near complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It mentions none of the three parameters (agent_id, arguments, session_id), leaving agents with no clue about their purpose, format, or optionality. The description adds zero value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Run platform skill_develop local tool' names the tool and a verb but does not explain what skill_develop does or what it means to 'develop' a skill. It is nearly a restatement of the tool name and does not differentiate from siblings like yaaif_skill_create or yaaif_skill_validate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus any alternative. The description provides no context about prerequisites, intended use cases, or relationships to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_edit_sectionC
Edit a SKILL.md section via skill_edit_section.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that a section is edited, implying mutation, but does not say whether the section must already exist, whether the edit is additive or replacing, what side effects occur, or what the response contains. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but brevity here is under-specification rather than conciseness. The only substantive phrase, 'Edit a SKILL.md section,' is followed by a redundant restatement of the tool name, wasting the little space available.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, a nested and fully open arguments object, no annotations, no output schema, and a large sibling tool set, this description is far too thin. An agent would not know how to identify a section, what content to provide, or what the expected result is, so the tool is effectively unusable from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the three parameters: agent_id, arguments, or session_id. The arguments parameter is an opaque object with additionalProperties allowed, but the description gives no hint of what fields it should contain, such as section identifier or new content. The tool cannot be called correctly based on the available information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a clear verb and resource: 'Edit a SKILL.md section.' However, it immediately repeats the tool name ('via skill_edit_section'), adding no information, and 'section' is left undefined. It does not differentiate this from sibling tools like yaaif_skill_write_file, which also modifies skill file content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as yaaif_skill_write_file, yaaif_skill_read_file, or yaaif_skill_create. There is no mention of prerequisites, required context, or conditions that would make this tool the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_enableC
Enable or disable a skill in skill_configs.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| skill_id | Yes | ||
| updated_by | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It reveals that the tool flips the enabled state of a skill, but it does not mention persistence, side effects, permission needs, or whether a reload is required afterward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loading the action. It is appropriately short for a simple toggle operation, though it is terse enough that some necessary context is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 3-parameter mutation with no annotations and no output schema, so more context is needed. The description does not explain what 'skill_configs' refers to, how enabled maps to the boolean parameter, or whether updated_by is required. It is minimally usable but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds some meaning by implying skill_id relates to 'a skill' and that enabled controls the 'enable or disable' action, but it does not mention the optional updated_by parameter at all. This is only partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Enable or disable') and a resource ('a skill in skill_configs'), so an agent can tell what the tool does. It does not explicitly differentiate this from sibling skill tools like yaaif_skill_refresh or yaaif_skill_runtime_reload, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus related skill-management tools such as yaaif_skill_validate, yaaif_skill_refresh, or yaaif_skill_update_module_files. There is no mention of prerequisites, alternatives, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_file_treeB
List the tenant skill files tree (Advanced Skills workspace).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'List' clearly signals a read-only operation, but the description does not mention return format, recursion depth, or whether hidden/system files are included. It covers the basic behavior but omits potentially useful detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no redundant words. The resource, verb, and workspace scope are all present and front-loaded. Nothing extraneous is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core listing action is stated, but the tool is incomplete for an agent because the only parameter is completely undocumented and no output shape or traversal semantics are described. For a tool with a single optional parameter, this ambiguity is significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'path' parameter has zero schema description coverage, and the description never mentions it. An agent cannot determine what the path should be relative to, its expected format, or what the default behavior is when omitted. The description adds no semantic value for the only parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List the tenant skill files tree') and adds a scoping parenthetical ('Advanced Skills workspace'). It is clear what the tool does, though it does not explicitly distinguish itself from tools like yaaif_skill_list or yaaif_files_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or named alternatives, but the parenthetical 'Advanced Skills workspace' implies it is intended for browsing the skill workspace file tree. The usage context is faintly implied rather than stated, so agents are left to infer relation to sibling file and skill tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_getB
Get one skill by id (via catalog list ?ids=).
| Name | Required | Description | Default |
|---|---|---|---|
| skill_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. It only hints at an implementation detail with 'via catalog list ?ids=' and does not disclose whether this is read-only, what happens when the ID is not found, or what the response shape is. This is minimal behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the core operation first and keeps the implementation hint in a parenthetical, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter, the core invocation path is reasonably clear: supply a skill_id and get one skill. However, without an output schema or any guidance on return format, errors, or when to use this versus listing skills, an agent still faces meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only says 'by id'. It does not clarify the expected format of skill_id, whether multiple IDs are accepted despite the singular parameter name, or what 'via catalog list ?ids=' means for parameter usage. The description does not meaningfully compensate for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get one skill by id'. The word 'one' clearly distinguishes this from the sibling skill-list tools, so an agent can immediately tell what the tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a single skill when you already have its ID, but it does not explicitly say when to prefer this over yaaif_skill_list or other skill-related tools. No alternatives or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_guided_draftC
Create a guided skill draft via skill_create_guided_draft.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only communicates that a creation action occurs. It does not state whether the draft is persisted, how session_id or agent_id affect the operation, what side effects occur, or what the result looks like. The implied mutating behavior is minimally transparent but nothing else is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but this is under-specification rather than effective conciseness. The phrase 'via skill_create_guided_draft' adds little value beyond the tool name, and the single sentence does not earn its place with meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool sits in a large family of skill/agent tools and has three opaque parameters, no output schema, and no annotations. A one-sentence description leaves the agent unable to determine valid argument values, the nature of the draft, or what a successful call returns. It is far from complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has three parameters (agent_id, arguments, session_id) with 0% description coverage, and the description does not explain any of them. In particular, the 'arguments' object is a nested free-form object with no guidance on expected keys or structure, so the agent cannot construct a valid call from this description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Create a guided skill draft') and resource, so it is not a pure tautology. However, it never defines what a 'guided skill draft' is or how it differs from the many sibling skill tools such as yaaif_skill_create or yaaif_skill_develop. The reference to 'skill_create_guided_draft' mostly restates the tool name in internal-function form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like yaaif_skill_create, yaaif_skill_develop, or skill validation tools. No context, prerequisites, exclusions, or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_listC
List skills in the tenant catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It communicates a read-only enumeration ('List') and the scope ('tenant catalog'), but it says nothing about return shape, pagination, sorting, or side-effect constraints. For a list operation this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and contains no redundancy, with the key action front-loaded. However, it is under-specified rather than efficiently complete; one sentence conveys purpose but sacrifices necessary usage and parameter detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and undocumented parameters, the description leaves the agent to guess at filtering/limit behavior and result format. For a simple optional-parameter list call it is minimally usable, but meaningful gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention q or limit at all. Neither the schema nor the description provides semantics for these parameters, so the agent has no guidance on filtering or limiting results beyond inferred names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('skills in the tenant catalog'), making it clear this is a read-only enumeration and distinguishing it from singular getters/actions like yaaif_skill_get or yaaif_skill_validate. It does not explicitly contrast with sibling list tools, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The statement implies this is the tool to use when the agent needs the set of skills available in the tenant catalog. No explicit alternatives, when-not conditions, or exclusions are provided, leaving the agent to infer based on the verb and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_map_agentsA
Replace agent→skill mappings (bulk). Prefer yaaif_skill_map_agents_merge to avoid wiping existing skills.
| Name | Required | Description | Default |
|---|---|---|---|
| assignments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly signals destructive behavior by saying 'Replace' and warning about 'wiping existing skills.' It does not mention authorization, reversibility, or response details, but the key destructive trait is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the core action front-loaded and the critical warning immediately after. Every word earns its place; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a single-parameter tool with a clear schema: it states the destructive replace behavior, warns about the safer alternative, and the schema covers the input shape. It does not describe return values or failure modes, but no output schema exists and the operation is simple enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the assignments parameter structure or the semantics of skill_ids beyond the word 'Replace.' The schema itself provides property names, but the description adds little meaning to help an agent construct valid input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Replace agent→skill mappings'), the resource (agent-skill mappings), and the bulk nature of the operation. It also names the sibling tool yaaif_skill_map_agents_merge, clearly distinguishing this tool as the replacement variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises preferring yaaif_skill_map_agents_merge to avoid wiping existing skills, which tells the agent when not to use this tool and which alternative to choose. This is direct, actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_map_agents_mergeA
Merge skill_ids into agents (fetch current mappings, union, then bulk replace). Safe default for plan execution.
| Name | Required | Description | Default |
|---|---|---|---|
| assignments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden: it discloses the underlying algorithm ('fetch current mappings, union, then bulk replace') and signals low risk via 'safe default'. It does not detail permissions, atomicity, or response shape, but the most important behavior is exposed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single informative sentence achieves high density: the operation, the algorithm, and a usage-context qualifier are all present with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, this is close to sufficient: it specifies the data transformation and the suggested execution context. It omits error cases and return values, but the nested schema plus the explicit merge semantics fill the main gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no parameter-specific meaning beyond the schema's own names. The single `assignments` parameter's nested structure exists in the schema, but the description never explains how to express mappings or what the array items represent beyond 'skill_ids into agents'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific operation: 'Merge skill_ids into agents', and then defines merge as 'fetch current mappings, union, then bulk replace'. This distinguishes it from a plain set/replace operation and from siblings like yaaif_skill_map_agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Safe default for plan execution' explicitly situates this tool as the preferred union-style option during plan execution. It does not name an alternative or state when not to use it, but the merge semantics make the intended context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_mcp_tool_catalogC
List MCP tools for skill linking (skill_mcp_tool_catalog).
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As annotations are absent, the description carries the full burden of disclosing behavior, but it only says 'List...'. It does not mention output format, pagination, filtering, whether it returns full tool schemas, or what 'skill linking' entails operationally. Even though listing is likely side-effect-free, that is not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is appropriately sized, but it includes the tool name in parentheses as '(skill_mcp_tool_catalog)', duplicating the tool name and adding little value. The core phrase is front-loaded, yet the parenthetical is wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters, no output schema, and no annotations, so the description must provide substantial context. It fails to explain what the tool returns, how the optional parameters affect the call, or what 'skill linking' specifically means, leaving an agent uncertain about how to invoke or interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, and the description does not mention any of the three parameters (agent_id, arguments, session_id). The agent is given no hints about what these parameters mean, whether they are required (they are optional), or how the 'arguments' object affects the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('List') and resource ('MCP tools') scoped to 'skill linking', which is clear enough to convey the tool's intended function. However, it does not differentiate this from similar siblings such as yaaif_mcp_tools_list or yaaif_skill_tools_check, leaving the distinction to be inferred from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools that list or inspect MCP tools/skills, an agent has no explicit basis to choose this one over yaaif_mcp_tools_list, yaaif_catalog_overview, or yaaif_skill_tools_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_read_fileC
Read a skill pack file from the tenant skills tree.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. The only behavioral clue is the verb 'read', implying a non-mutating operation, but it does not state what is returned, whether it is idempotent, permissions required, or error behavior. This adds little beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It immediately communicates the core action and resource without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter tool, but since there is no output schema or annotations, the description should explicitly mention the return value (file contents) and clarify path semantics. It leaves an agent guessing about the output format and how to construct a valid path, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a `path` string with no description (0% coverage). The description adds some meaning by clarifying that the path refers to a file within the 'tenant skills tree', which gives an agent a namespace for the path. However, it does not explain the expected path format or whether it is relative/absolute, leaving partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Read') and a specific resource ('skill pack file') within a defined scope ('tenant skills tree'). It is clear and distinct from write/list siblings, though it does not explicitly contrast itself with similar reading tools like yaaif_skill_file_tree or yaaif_file_load_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, such as obtaining a valid path via yaaif_skill_file_tree, nor does it indicate scenarios where another tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_refreshB
Re-discover skill files into the catalog.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only says 're-discover skill files into the catalog'; it does not state whether the operation is idempotent, whether missing skills are removed, whether it affects the running runtime, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and the core action is front-loaded. It earns the 4 rather than 5 because 'Re-discover' is slightly jargon-like and the sentence carries no extra structural support for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and no usage context, the description is too thin to make a confident call relative to skill_runtime_reload or skill_validate. An agent knows the intended action roughly, but not why, when, or what happens after calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so there is no parameter information that the description needs to add. The baseline of 4 applies because there are no parameter semantics to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a distinct operation ('re-discover') and a resource ('skill files into the catalog'), so an agent can tell it is a catalog-rescanning action rather than a tautology. However, it does not explicitly differentiate it from nearby siblings like yaaif_skill_runtime_reload or yaaif_skill_validate, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement about when to call this tool, when not to call it, or which sibling to choose instead. An agent must infer that it is for refreshing the skill catalog after files changed, with no guidance against alternatives such as runtime_reload.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_runtime_reloadB
Reload in-memory skill runtime for agents.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says 'Reload in-memory skill runtime'. It does not disclose side effects on running agents, the source from which the runtime is reloaded, whether the operation is disruptive or idempotent, or any permission requirements. This is a significant gap for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler or redundant information. It is front-loaded with the action and resource, making it highly efficient for a zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the simple interface, this tool likely has operational impact on agents and the skill runtime. The description omits when the reload should be triggered, what effects it has on active sessions, and what the expected outcome is. Without an output schema or annotations, this thin description is not sufficiently complete for an agent to confidently invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema is fully empty, so the schema already provides complete parameter coverage. The description does not need to explain parameters, and the baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Reload in-memory skill runtime for agents') that goes beyond merely restating the tool name. It is clear that this tool performs a reload operation on the skill runtime, but it does not explicitly differentiate itself from the similar-sounding yaaif_skill_refresh sibling, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many skill-related siblings such as yaaif_skill_refresh, yaaif_skill_validate, or yaaif_skill_runtime_status. The phrase 'for agents' hints at a purpose but does not specify conditions, prerequisites, or exclusions, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_runtime_statusB
Get in-memory skill runtime status for the tenant.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read-only operation, it does not explicitly state that it has no side effects, whether special permissions are required, or what 'in-memory' means (e.g., ephemeral, not persisted). It also does not describe what the returned status will look like. This is a significant gap for a tool with no structured behavioral hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence with no filler. It front-loads the core action and resource, making it immediately clear what the tool does. There is zero wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema and no annotations, the description is minimal but not fully complete. It lacks details about what the 'status' encompasses (e.g., version, health, loaded modules, memory usage), what the response structure is, and when it should be called relative to related runtime tools like yaaif_skill_runtime_reload. More context would help an agent decide correctly, though the simplicity of a getter with no params raises the baseline.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description does not need to compensate for missing parameter documentation. The 100% schema coverage for an empty property set means the description's lack of parameter details is not a deficiency. Baseline 4 applies for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a specific resource ('in-memory skill runtime status') with a tenant scope. This distinguishes it from action-oriented siblings like yaaif_skill_runtime_reload and other status tools focused on different resources (e.g., yaaif_mcp_deployment_status). However, it does not explicitly name alternatives, so it misses the full 'distinguishes from siblings' bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as yaaif_skill_runtime_reload or other status-checking tools. The description simply states what it does without providing any selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_tools_checkA
Verify skill frontmatter tools / allowed-tools (or an explicit tools list) exist in local tools or external MCP catalog. Server wildcards such as sap-odata:* are accepted. Also use allowed-prompts / allowed-resources from markdown. Run before skill create.
| Name | Required | Description | Default |
|---|---|---|---|
| tools | No | ||
| markdown | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the tool performs a verification, accepts server wildcards, and uses markdown content for allowed-prompts/allowed-resources. It does not explain response format, failure behavior, side effects, or whether it only reads, though 'Verify' implies a read-only check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the main purpose, with each sentence adding a distinct fact: what is verified, wildcard acceptance, markdown usage, and when to run. Minor ambiguity in 'Also use allowed-prompts / allowed-resources from markdown' keeps it from being perfectly clear, but there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no annotations, no output schema, and no property descriptions, the description gives useful context but leaves important gaps: how markdown is supplied, whether the parameters are alternatives or complementary, and what the verification result looks like. It is adequate for basic use but not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add parameter meaning. It maps loosely to both parameters: 'explicit tools list' suggests the tools array, and 'allowed-prompts / allowed-resources from markdown' references the markdown parameter. However, it does not clarify whether markdown is a file path or content, whether both parameters are required together, or how tools and markdown interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Verify'), a clear resource ('skill frontmatter tools / allowed-tools'), and the verification target ('exist in local tools or external MCP catalog'). It also narrows the behavior with wildcard acceptance and the pre-create workflow. It does not explicitly name or contrast sibling validation tools like yaaif_skill_validate, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Run before skill create' gives explicit workflow timing for when this tool should be used. It also clarifies what inputs are relevant, including the markdown-based allowed-prompts/allowed-resources. However, it does not state when not to use it or which sibling tools are alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_update_module_filesC
Create/update/delete skill module files via skill_update_module_files.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits itself. It does explicitly warn that the tool can delete as well as create/update, which is meaningful destructive-behavior disclosure. However, it omits nearly everything else: auth requirements, side effects, overwrite semantics, reversibility, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, but 'via skill_update_module_files' is redundant with the tool name and does not earn its place. This is under-specification disguised as conciseness, not efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three undocumented parameters, one of which is an opaque nested object, and no output schema or annotations, this one-sentence definition is woefully incomplete. It cannot support safe invocation, error handling, or correct argument construction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter-level meaning. The 'arguments' parameter is a free-form object with additionalProperties allowed, yet the description gives no hint about its expected shape, keys, or relationship to module files. An agent cannot construct a valid call from this definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action set ('Create/update/delete') and a clear resource ('skill module files'), so the basic purpose is understandable. However, the trailing 'via skill_update_module_files' is self-referential and adds no differentiation from close siblings like yaaif_skill_write_file or yaaif_skill_edit_section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of alternatives such as yaaif_skill_write_file, yaaif_skill_edit_section, or yaaif_skill_create. No context, prerequisites, or exclusions are provided, so an agent cannot decide between this and related skill-file tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_validateC
Validate one skill or the catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| strict | No | ||
| skill_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It never states whether validation is read-only, whether it has side effects such as triggering recompilation or writing logs, or what happens on failure (errors, exit codes, output format). Read-only status is only an inference from the name, not a stated guarantee.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
At six words, the description is extremely short, but this is under-specification rather than conciseness. For a tool with two undocumented parameters, an ambiguous core verb, and a look-alike sibling, far more detail is needed; brevity here sacrifices essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition is inadequate for the tool's complexity. With no annotations, no output schema, 0% parameter coverage, and a sibling named 'yaaif_skill_validate_module', an agent lacks everything needed to call this reliably: what validation entails, what 'strict' does, the expected 'skill_id' format, the return value, and the distinguishing scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — neither 'strict' nor 'skill_id' is documented in the schema — and the description says nothing about them either. An agent cannot determine what 'strict' controls, what format 'skill_id' must take, or whether both can be supplied together. The description fails to compensate for the schema's total lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb (validate) and a resource (skill or catalog), and states the two possible scopes. However, 'validate' is ambiguous — it could mean syntax checking, dependency resolution, or runtime readiness — and the sibling 'yaaif_skill_validate_module' suggests a closely related but distinct operation that the description does not differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to call this tool versus the near-identical 'yaaif_skill_validate_module', nor when to validate one skill (with skill_id) versus the whole catalog (omitting it). The 'strict' flag's role in choosing between modes is not explained either.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_validate_moduleC
Validate a skill module via platform local tool skill_validate_module.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure, but it only says 'validate'. It does not state whether the operation is read-only, what side effects occur, whether it requires session context, or what the return value looks like. This is a significant gap for a tool with three parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it is under-specified rather than efficiently informative. It lacks front-loaded useful details and wastes words on redundant 'via platform local tool skill_validate_module'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and zero parameter descriptions, the description is severely incomplete. An agent cannot determine how to invoke this tool correctly, what inputs are expected, or what the outcome will be.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about agent_id, arguments, or session_id. The agent has no clue what values to pass or what the arguments object should contain, leaving the tool unusable without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action 'Validate a skill module', which is clear, but it adds 'via platform local tool skill_validate_module' which is redundant with the tool name. It does not explain what validation entails or differentiate from sibling yaaif_skill_validate. It is not a pure tautology but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like yaaif_skill_validate. No prerequisites, conditions, or exclusions are mentioned. The description offers no context to help an agent choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_skill_write_fileC
Create or update a skill pack file under the tenant skills tree.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| method | No | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'Create or update', which implies mutation, but it does not explain whether the tool overwrites existing files, how conflicts are handled, whether it requires specific permissions, or what the response contains. The description adds minimal behavioral context beyond the action itself, which is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler. It front-loads the primary action and target. However, its brevity borders on under-specification, so while structurally efficient, it sacrifices necessary detail. Still, for what it includes, it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, no annotations, and no output schema, this description is far from complete. It fails to define what a 'skill pack file' is, how 'path' should be formatted, what 'content' should contain, or what the 'method' parameter does. An agent cannot reliably call this tool without additional external knowledge, making it contextually incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no semantic hints for the three parameters (path, method, content). The description does not explain any of them—it only mentions 'skill pack file', which loosely maps to 'path' but not explicitly. The method enum (POST/PUT) is entirely unaddressed. With no param descriptions and no compensating text, this is a serious deficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('Create or update') and a distinct resource ('skill pack file under the tenant skills tree'). This is specific enough to distinguish it from generic write tools, though it doesn't differentiate it from siblings like yaaif_skill_create or yaaif_skill_update_module_files. It does provide a clear operation and context, earning a 4 rather than a 5 due to missing sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention any conditions, prerequisites, or exclusions relative to sibling tools like yaaif_skill_create or yaaif_skill_validate. An agent would have to infer usage from the name alone, which is insufficient for a field with many similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_telemetry_getA
Get anonymous local telemetry opt-in state and counters from the active YAA\F client state directory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral disclosure burden. The verb 'Get' plus 'from the active client state directory' clearly indicates a non-mutating local read, and 'anonymous' addresses data sensitivity. It does not detail error behavior or counter semantics, but for a simple getter this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every phrase adds useful information: the action, the data scope, the anonymity, and the source location.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and a low-complexity read operation, the description provides the essential source and data categories. The lack of an output schema means the exact return shape is unspecified, but 'opt-in state and counters' is enough for an agent to decide whether and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty with 0 parameters, so there are no parameter semantics to clarify. The description's specification of what data is read is sufficient given the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a clear resource ('anonymous local telemetry opt-in state and counters'), and a source location ('active YAA\F client state directory'). This distinguishes it from siblings like yaaif_telemetry_set (a setter) and yaaif_ops_telemetry (broader operational telemetry).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives, and no sibling is mentioned. However, the qualifiers 'anonymous local' and 'client state directory' weakly imply this is for local client telemetry rather than broader ops telemetry, giving some usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_telemetry_setA
Enable/disable anonymous local success/fail counters (no network, no tokens).
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It provides meaningful transparency by stating 'no network, no tokens' and 'anonymous local', which informs the agent about privacy and side-effect guarantees. However, it does not disclose whether the setting persists across restarts or whether enabling/disabling affects existing counters, leaving some behavioral details unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that front-loads the action (Enable/disable) and includes all essential qualifiers (anonymous, local, no network, no tokens) with zero wasted words. Every element earns its place, making it exemplary in conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter boolean setter with no output schema, the description covers the core action, parameter semantics, and key behavioral context. It lacks explicit mention of return value or persistence, but these are minor for a toggle operation. Overall it is complete enough for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single boolean parameter 'enabled' with 0% schema description coverage, so the description must compensate. It does so explicitly: 'Enable/disable' maps directly to the boolean parameter, making it unambiguous that true enables and false disables. This fully explains the parameter's meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (enable/disable) with a clear resource (anonymous local success/fail counters) and adds key qualifiers (anonymous, local, no network, no tokens) that distinguish it from telemetry retrieval tools like yaaif_telemetry_get. It is immediately clear what the tool does and how it differs from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no explicit guidance on when to use it versus alternatives such as yaaif_telemetry_get or yaaif_ops_telemetry. Usage is implied (toggle telemetry counters), but there is no when-to-use or when-not-to-use guidance, so an agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_trigger_ambient_workflowC
Trigger an ambient workflow via platform local tool.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| arguments | No | ||
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It only states that the tool triggers a workflow via a 'platform local tool', which hints at the execution mechanism but does not disclose side effects, whether the call is asynchronous, whether approval may be required, or what happens after trigger. This is a significant gap for an action-oriented tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, but most of it restates the tool name ('Trigger an ambient workflow'). The only substantive addition, 'via platform local tool', is unexplained. It is not bloated, but it is under-specified enough that it cannot be considered well-structured content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, no annotations, no output schema, and a large sibling set containing similar ambient workflow operations, this description is far too sparse. It omits expected return values, required versus optional inputs in practice, and how this tool relates to ambient run or test-trigger tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of agent_id, arguments, or session_id. The nested 'arguments' object with arbitrary properties is especially opaque, and the description does not compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb-resource pair: 'Trigger an ambient workflow', which distinguishes the action from create/get/update/list operations on ambient workflows. However, it does not explicitly differentiate itself from the closely related sibling 'yaaif_ambient_test_trigger' or explain what 'via platform local tool' means, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as yaaif_ambient_workflow_create, yaaif_ambient_test_trigger, or the ambient run control tools. There is no mention of prerequisites, typical calling context, or cases where this tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_user_createA
Create a Keycloak email/password user, generate a one-time password that must be reset on first login, then save the YAAIF tenant user. Returns temporary_password once. Requires users:write. Granting ADMIN additionally requires the caller to be ADMIN and confirm_admin_grant=true. Downstream systems can call the same POST /api/users contract with a ymp- key scoped to users:write.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| role | No | ||
| Yes | |||
| active | No | ||
| confirm_admin_grant | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and covers the key behaviors: Keycloak creation, one-time password that must be reset, tenant user save, one-time return of temporary_password, and permission requirements. It does not disclose defaults for active or role, but the core side effects are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences front-load the action and return value, then add auth and alternative-contract context. The final downstream sentence is slightly tangential for agent invocation but still useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description provides the essential behavioral, permission, and return-value context. Remaining gaps are parameter-level details (active default, role enum) rather than missing operation semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description is the only source of parameter meaning. It explains confirm_admin_grant and role (ADMIN) and implies email/name, but leaves active and the exact role value set undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete multi-step operation: create a Keycloak email/password user, generate a one-time password, and save the YAAIF tenant user. This clearly distinguishes it from read/list siblings like yaaif_user_list and yaaif_user_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the required users:write permission and the special ADMIN-grant condition (caller ADMIN + confirm_admin_grant=true), giving clear context for when this tool is appropriate. It also notes downstream systems can use the same POST /api/users contract with a ymp- key, though it does not explicitly contrast with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_user_getA
Get one tenant user by id or email. Requires users:read.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| user_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden, and it does add one concrete behavioral fact: the operation requires the users:read scope. It does not disclose error or not-found behavior, return format, or whether lookups are exact-match, leaving the behavioral picture partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the core operation first and the permission requirement second, with no filler or repetition. Every word carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch-one tool, the description covers the action, the tenant-user scope, the lookup keys, and the required permission, which is enough to invoke it correctly. The main omissions (not-found behavior, explicit sibling routing) are secondary for this complexity, though an output schema would have added certainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides zero parameter descriptions, so the description must compensate; it does map both schema properties to the lookup mechanism and signals that id and email are alternative identifiers. It leaves ambiguity about whether both can be supplied together, which takes precedence, and whether at least one is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-plus-resource ('Get one tenant user') and states the lookup criteria ('by id or email'), so it clearly describes a fetch-one operation rather than a list, create, or update. It does not explicitly name or contrast a sibling like yaaif_user_list, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: call this when you have a user_id or email and need a single tenant user. However, no alternative tool is named and no exclusion conditions are given, so the agent must infer when this is preferred over yaaif_user_list or other user-scoped tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_user_listA
List tenant users (name, email, role, active). Requires users:read. Admins use this before yaaif_user_role_set.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| active | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clarifies that this is a list operation, the fields returned, and the permission needed. However, it does not disclose pagination behavior, filter semantics, or whether partial results are possible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the essential purpose, output shape, permission requirement, and a concrete use case. There is no filler or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the description is minimally viable: it names the resource, output fields, auth requirement, and a typical workflow. But with no output schema and undocumented optional parameters, it is incomplete for agents needing filtering or pagination details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never explains q, limit, or active. The parenthetical '(name, email, role, active)' describes output fields rather than parameters, so an agent receives no description-based guidance for correctly using the optional inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List tenant users' and states the returned fields (name, email, role, active). It also anchors the tool's purpose by noting it is used before yaaif_user_role_set, which helps distinguish it from user-management siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: admins should call this before yaaif_user_role_set, and it states the required permission (users:read). It does not explicitly mention when to prefer yaaif_user_get instead, so exclusion guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_user_role_setA
Change a tenant user's platform role (ADMIN, EDITOR, DEVELOPER, VIEWER, CHAT_USER, or a custom role from yaaif_roles_list). Requires users:write. Granting ADMIN additionally requires the caller to be ADMIN and confirm_admin_grant=true.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | ||
| No | |||
| user_id | No | ||
| confirm_admin_grant | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It reveals that this is a privileged mutation requiring users:write, and that ADMIN grants need caller ADMIN status plus confirm_admin_grant=true. It does not discuss idempotency, side effects, or what happens if both email and user_id are supplied, but the key caveats are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core action, role enumeration, permission requirement, and the ADMIN-specific confirmation flag. Every clause earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose, permissions, and the special ADMIN case, but it omits guidance on how to identify the target user via email versus user_id. Since there is no output schema and no annotations, this missing parameter-selection guidance leaves the tool slightly incomplete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning for the role parameter by listing valid values and referencing yaaif_roles_list, and it explains confirm_admin_grant's role for ADMIN grants. However, it does not clarify the relationship between email and user_id, which one to prefer, or whether either is required, leaving an important gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Change') and resource ('a tenant user's platform role'), enumerates the valid role values, and points to yaaif_roles_list for custom roles. This clearly distinguishes it from user listing, creation, and retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the required permission (users:write) and the special condition for granting ADMIN, giving the agent actionable context for when this tool is appropriate. It does not explicitly mention when not to use it or name alternatives, but the permission and ADMIN caveat provide solid guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yaaif_whoamiA
Return current profile, auth session, tenant name/id, and RBAC identity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what is returned but does not indicate whether the tool is read-only, whether it requires an active session, or what happens if authentication is missing. It also does not mention any side effects or potential errors. The description is not misleading, but it lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the primary action ('Return') and lists the four pieces of information returned. Every word earns its place; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (no parameters, no output schema), the description is largely complete. It enumerates the returned data points, which is sufficient for an agent to know what to expect. It does not specify the return format, but that is not a critical omission for a 'whoami' tool, and the lack of an output schema reduces the need for detailed return documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema coverage is 100% and there is nothing to add. The description does not need to explain parameters. A baseline of 4 is appropriate because the description correctly implies that no input is needed, and it adds no redundant information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns current profile, auth session, tenant name/id, and RBAC identity. This is a specific and unambiguous purpose that distinguishes it from sibling tools like login, logout, or set_tenant, which are actions rather than informational queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It does not mention that this is the go-to tool for checking the current identity, nor does it note any exclusions (e.g., 'use this before authentication'). For a tool with a clear niche, this is a missed opportunity.
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.
203 tool updates
v1.3.5- First observed
yaaif_agent_create - First observed
yaaif_agent_get - First observed
yaaif_agent_list - First observed
yaaif_agent_spec_activation_override - First observed
yaaif_agent_spec_adopt - First observed
yaaif_agent_spec_adoption_preview - First observed
yaaif_agent_spec_bind - First observed
yaaif_agent_spec_conflict_resolve - First observed
yaaif_agent_spec_conflicts - First observed
yaaif_agent_spec_coverage - First observed
yaaif_agent_spec_create - First observed
yaaif_agent_spec_delete - First observed
yaaif_agent_spec_delete_requirement - First observed
yaaif_agent_spec_delete_slot - First observed
yaaif_agent_spec_dependencies - First observed
yaaif_agent_spec_drift_scan - First observed
yaaif_agent_spec_evidence_record - First observed
yaaif_agent_spec_get - First observed
yaaif_agent_spec_legacy_revision_backfill_apply - First observed
yaaif_agent_spec_legacy_revision_backfill_preview - First observed
yaaif_agent_spec_list - First observed
yaaif_agent_spec_metrics - First observed
yaaif_agent_spec_policy_export - First observed
yaaif_agent_spec_policy_get - First observed
yaaif_agent_spec_policy_import - First observed
yaaif_agent_spec_policy_set - First observed
yaaif_agent_spec_processing - First observed
yaaif_agent_spec_publish - First observed
yaaif_agent_spec_readiness - First observed
yaaif_agent_spec_release_approval_refresh - First observed
yaaif_agent_spec_release_approval_request - First observed
yaaif_agent_spec_release_approvals - First observed
yaaif_agent_spec_release_candidate_promote - First observed
yaaif_agent_spec_release_compatibility - First observed
yaaif_agent_spec_release_dependencies - First observed
yaaif_agent_spec_release_dependency_delete - First observed
yaaif_agent_spec_release_dependency_upsert - First observed
yaaif_agent_spec_release_export - First observed
yaaif_agent_spec_release_import - First observed
yaaif_agent_spec_release_provenance_list - First observed
yaaif_agent_spec_release_provenance_record - First observed
yaaif_agent_spec_revision_compare - First observed
yaaif_agent_spec_revision_restore - First observed
yaaif_agent_spec_revisions - First observed
yaaif_agent_spec_rollout_metrics - First observed
yaaif_agent_spec_sync_apply - First observed
yaaif_agent_spec_sync_from_objects - First observed
yaaif_agent_spec_sync_preview - First observed
yaaif_agent_spec_sync_to_objects - First observed
yaaif_agent_spec_sync_workflow_design - First observed
yaaif_agent_spec_transition - First observed
yaaif_agent_spec_untracked_list - First observed
yaaif_agent_spec_untracked_resolve - First observed
yaaif_agent_spec_update - First observed
yaaif_agent_spec_update_segment - First observed
yaaif_agent_spec_upsert_requirement - First observed
yaaif_agent_spec_upsert_slot - First observed
yaaif_agent_spec_upsert_slots - First observed
yaaif_agent_update - First observed
yaaif_ambient_agent_create - First observed
yaaif_ambient_agent_get - First observed
yaaif_ambient_agent_list - First observed
yaaif_ambient_run_approve - First observed
yaaif_ambient_run_get - First observed
yaaif_ambient_run_pause - First observed
yaaif_ambient_run_reject - First observed
yaaif_ambient_run_resume - First observed
yaaif_ambient_run_stop - First observed
yaaif_ambient_runs_list - First observed
yaaif_ambient_test_trigger - First observed
yaaif_ambient_workflow_create - First observed
yaaif_ambient_workflow_get - First observed
yaaif_ambient_workflow_list - First observed
yaaif_ambient_workflow_update - First observed
yaaif_api_key_bind_deployment - First observed
yaaif_api_key_create - First observed
yaaif_api_key_delete - First observed
yaaif_api_key_get - First observed
yaaif_api_key_list - First observed
yaaif_api_key_rotate - First observed
yaaif_api_key_update - First observed
yaaif_approval_inbox_list - First observed
yaaif_approval_strategies_list - First observed
yaaif_approval_strategy_create - First observed
yaaif_approval_strategy_get - First observed
yaaif_approval_strategy_publish - First observed
yaaif_approval_task_claim - First observed
yaaif_approval_task_decide - First observed
yaaif_catalog_overview - First observed
yaaif_configure_check - First observed
yaaif_deployment_settings_get - First observed
yaaif_deployment_settings_status - First observed
yaaif_desktop_skill_mapping_delete - First observed
yaaif_desktop_skill_mapping_set - First observed
yaaif_desktop_skill_mappings_list - First observed
yaaif_desktop_tool_package_delete - First observed
yaaif_desktop_tool_package_get - First observed
yaaif_desktop_tool_package_inspect - First observed
yaaif_desktop_tool_package_install - First observed
yaaif_desktop_tool_package_publish - First observed
yaaif_desktop_tool_package_uninstall - First observed
yaaif_desktop_tool_package_update - First observed
yaaif_desktop_tool_package_upgrade - First observed
yaaif_desktop_tool_package_worker_status - First observed
yaaif_desktop_tool_packages_list - First observed
yaaif_desktop_workers_list - First observed
yaaif_dev_session_ensure - First observed
yaaif_doctor - First observed
yaaif_ensure_session - First observed
yaaif_file_artifact_delete - First observed
yaaif_file_artifact_versions - First observed
yaaif_file_get_extracted - First observed
yaaif_file_load_context - First observed
yaaif_file_share_link - First observed
yaaif_files_list - First observed
yaaif_files_search - First observed
yaaif_generate_file - First observed
yaaif_list_ambient_workflows - First observed
yaaif_list_tenants - First observed
yaaif_load_artifacts - First observed
yaaif_local_tool_call - First observed
yaaif_local_tool_get - First observed
yaaif_local_tools_catalog_overview - First observed
yaaif_local_tools_list - First observed
yaaif_login - First observed
yaaif_login_device - First observed
yaaif_logout - First observed
yaaif_mcp_deployment_create - First observed
yaaif_mcp_deployment_delete - First observed
yaaif_mcp_deployment_deploy - First observed
yaaif_mcp_deployment_k8s_status - First observed
yaaif_mcp_deployment_logs - First observed
yaaif_mcp_deployment_redeploy - First observed
yaaif_mcp_deployment_register - First observed
yaaif_mcp_deployment_status - First observed
yaaif_mcp_deployment_stop - First observed
yaaif_mcp_deployment_update - First observed
yaaif_mcp_deployments_list - First observed
yaaif_mcp_link_or_create - First observed
yaaif_mcp_scaffold - First observed
yaaif_mcp_server_get - First observed
yaaif_mcp_server_refresh - First observed
yaaif_mcp_servers_list - First observed
yaaif_mcp_tool_get - First observed
yaaif_mcp_tools_list - First observed
yaaif_ops_ambient_run_get - First observed
yaaif_ops_ambient_worker_logs - First observed
yaaif_ops_analyze - First observed
yaaif_ops_correlate - First observed
yaaif_ops_desktop_run_get - First observed
yaaif_ops_desktop_runs_list - First observed
yaaif_ops_desktop_worker_logs - First observed
yaaif_ops_diagnosis_create - First observed
yaaif_ops_diagnosis_get - First observed
yaaif_ops_diagnosis_list - First observed
yaaif_ops_flow_events - First observed
yaaif_ops_session_events - First observed
yaaif_ops_session_get - First observed
yaaif_ops_session_insights - First observed
yaaif_ops_session_messages - First observed
yaaif_ops_telemetry - First observed
yaaif_plan_dry_run - First observed
yaaif_plan_execution_get - First observed
yaaif_plan_execution_list - First observed
yaaif_plan_execution_resume - First observed
yaaif_plan_execution_save - First observed
yaaif_plan_execution_update_step - First observed
yaaif_plan_verify - First observed
yaaif_platform_export - First observed
yaaif_platform_list - First observed
yaaif_platform_save - First observed
yaaif_platform_use - First observed
yaaif_roles_list - First observed
yaaif_session_files_list - First observed
yaaif_set_tenant - First observed
yaaif_skill_create - First observed
yaaif_skill_develop - First observed
yaaif_skill_edit_section - First observed
yaaif_skill_enable - First observed
yaaif_skill_file_tree - First observed
yaaif_skill_get - First observed
yaaif_skill_guided_draft - First observed
yaaif_skill_list - First observed
yaaif_skill_map_agents - First observed
yaaif_skill_map_agents_merge - First observed
yaaif_skill_mcp_tool_catalog - First observed
yaaif_skill_read_file - First observed
yaaif_skill_refresh - First observed
yaaif_skill_runtime_reload - First observed
yaaif_skill_runtime_status - First observed
yaaif_skill_tools_check - First observed
yaaif_skill_update_module_files - First observed
yaaif_skill_validate - First observed
yaaif_skill_validate_module - First observed
yaaif_skill_write_file - First observed
yaaif_telemetry_get - First observed
yaaif_telemetry_set - First observed
yaaif_trigger_ambient_workflow - First observed
yaaif_user_create - First observed
yaaif_user_get - First observed
yaaif_user_list - First observed
yaaif_user_role_set - First observed
yaaif_whoami
TDQS
Scored across 203 tools
Multiple tools overlap significantly: yaaif_ops_telemetry has six explicit aliases, and file retrieval is spread across yaaif_files_list, yaaif_session_files_list, yaaif_load_artifacts, yaaif_file_load_context, and yaaif_file_get_extracted with only subtle differences. The ~50 agent_spec_* tools and several mcp_deployment_* variants further blur boundaries, so an agent can easily misselect despite descriptive text.
The yaaif_ prefix is consistent, but verb/noun ordering is mixed (e.g., yaaif_agent_list vs yaaif_list_ambient_workflows), and some tools break the pattern entirely (yaaif_doctor, yaaif_whoami, yaaif_mcp_link_or_create). Domain clusters like ops_* and agent_spec_* are internally consistent, but the overall convention is a blend rather than a uniform scheme.
203 tools is an extreme count for any MCP server; even a full platform API would be better served by a smaller, curated toolkit with grouped resources instead of 200+ named functions. Many tools are aliases or micro-operations (e.g., six ops_telemetry aliases and dozens of agent_spec_* tools), so the count adds navigation overhead without proportional capability.
The tool surface is extraordinarily broad, covering platform/auth, agents, skills, MCP deployments, API keys, users, approvals, desktop packages, files, ops/telemetry, and the full Scenario agent-spec lifecycle. Minor gaps exist—no agent/skill/user delete tools and some workflows require external UI steps—but most create/read/update operations are covered.
Related MCP Connectors
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables LLM-powered code analysis, generation, debugging, and context management through MCP integration with IDEs like Cursor and Claude Desktop.-
- AlicenseAqualityDmaintenanceBridges any MCP client (like Claude Code, Zed, VS Code) to any ACP coding agent, enabling multi-agent orchestration from a single chat interface.24103 npm9Apache 2.0
- AlicenseNot gradedqualityFmaintenanceGives AI agents full access to IntelliJ IDE by running terminal commands, triggering builds, pushing notifications, and querying project context through a single MCP server with specialized plugins.4 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables ChatGPT and Claude to securely connect to existing Codex sessions across local and remote development hosts via a self-hosted MCP gateway.Apache 2.0