Yardstick ATS
Server Details
Manage hiring in Yardstick's ATS: jobs, candidates, applications, interviews, and scorecards.
- Status
- Healthy
- Uptime
- 65.0% over 74 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- yardstickinc/yardstick-mcp
- GitHub Stars
- 0
- Server Listing
- Yardstick ATS MCP Server
TDQS
Scored across 275 tools
Many tools have overlapping or hard-to-distinguish purposes, especially in interview_plan_drafts (add/update/generate/clear/delete per section), automation_rules preview variants, and application decision tools (decide, decide_hiring_step, hiring_step_decision, transition_preview/direct/bind). An agent can often infer intent from long descriptions, but boundaries are frequently unclear.
Most names use snake_case with a yardstick_ prefix, but the ordering is inconsistent: many follow resource_action (e.g., applications_read), while others are action-first (e.g., applications_admit_candidate, automation_rules_bulk) or use mixed patterns like email_templates_publish. The set remains readable but not predictable.
275 tools is an extreme mismatch for a coherent MCP surface. Even a broad ATS domain does not justify this many granular operations, and the sheer count creates selection burden and accidental misuse.
The surface covers a wide range of ATS domains: people, jobs, applications, interviews, offers, email, pipelines, automation, prospects, reporting, and Slack. Minor gaps may exist, but core CRUD and lifecycle operations are extensively represented.
Available Tools
275 toolsyardstick_access_grants_createGrant someone access to a record (confirm in Yardstick)CInspect
Create a reasoned, revocable, audited access grant.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | ||
| reason | Yes | ||
| revocable | No | ||
| target_id | Yes | ||
| expires_at | No | ||
| request_id | No | ||
| effective_at | No | ||
| idempotency_key | No | ||
| artifact_classes | Yes | ||
| subject_person_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds some traits beyond annotations, such as 'revocable' and 'audited,' but it does not explain operational behavior like whether the grant takes effect immediately, whether confirmation in Yardstick is required, or what permissions are needed. The title's parenthetical 'confirm in Yardstick' hints at an important confirmation step that the description fails to address.
Agents need to know what a tool does to the 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 that front-loads the action and avoids filler. It is concise, though its brevity comes at the cost of 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?
This is a complex create operation with 10 parameters, no output schema, and zero schema description coverage. A single abstract sentence does not give an agent enough context to choose required subjects, scopes, target IDs, artifact classes, or timing fields, let alone understand the confirmation behavior hinted at in the title.
Complex tools with many parameters or behaviors need more documentation. 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 none of the 10 parameters. 'Reasoned' and 'revocable' only vaguely hint at `reason` and `revocable`, leaving the meaning of `subject_person_id`, `scope`, `target_id`, `artifact_classes`, `expires_at`, and others 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 clearly states an active verb ('Create') and a concrete resource ('access grant'), and the title reinforces this as granting someone access to a record. It is distinguishable from the sibling list/read/revoke tools by action type, though it does not explicitly call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no mention of checking existing grants via list/read, and no note about using revoke for removal. For an access-control mutation, failing to mention prerequisites or alternatives leaves the agent to 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.
yardstick_access_grants_listList access grantsARead-onlyIdempotentInspect
List explicit access grants visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the useful scoping detail that only grants visible to the current principal are returned, but it does not mention pagination behavior or response shape, which would add value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 meaning, and the most important scoping information appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description gives the essential purpose and scope. However, with three pagination-related parameters and no explanation of how results are returned, the definition leaves an agent without enough information to confidently paginate or interpret 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?
Schema description coverage is 0%, so the description needed to compensate for the three parameters (limit, request_id, starting_after). It does not mention that limit/starting_after are pagination controls or what request_id is for. The parameter names are suggestive but not documented, leaving agents to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('access grants'), and important scope qualifiers ('explicit', 'visible to the current principal'). This clearly distinguishes the list operation from the sibling read (single grant), create, and revoke 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 enumerating the current principal's explicit grants, which provides clear context. However, it does not explicitly state when not to use it or name alternatives, though the sibling set makes the distinction fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_access_grants_readRead an access grantBRead-onlyIdempotentInspect
Read one explicit access grant by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| access_grant_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the behavioral nuance that the access grant ID is a 'public id,' but it does not clarify response format, error conditions, or any side effects. No contradiction with annotations 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, tight sentence that leads with the verb and resource. Every word contributes value, and there is no fluff or repetition. For a simple read operation, this level of brevity is 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?
There is no output schema, so the description should describe what the tool returns to be complete. It does not mention the response shape, whether the grant is returned in full or partial, or any error handling. An agent cannot fully anticipate the tool's outcome, making the definition incomplete for a read 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%, so the description carries the burden of parameter explanation. It clarifies that access_grant_id is a public ID, but it says nothing about request_id, leaving its purpose ambiguous. The description only partially compensates for the complete lack of schema-level 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 immediately states the verb 'Read' and the resource 'explicit access grant' with the qualifier 'by public id,' which clearly specifies the operation. It is easily distinguished from siblings like yardstick_access_grants_list or yardstick_access_grants_create, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. It does not mention that list should be used to find grants by other criteria, or create/revoke for mutations. The implied use case is a single lookup, but there is no explicit when-to-use or exclusion information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_access_grants_revokeRevoke an access grant (confirm in Yardstick)BDestructiveInspect
Revoke an explicit access grant with optional reason text.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| request_id | No | ||
| access_grant_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false, indicating a mutation. However, the description does not disclose that this likely requires confirmation (as the title hints) or that the action is irreversible. The mention of 'confirm in Yardstick' in the title is undercut by the description's omission of any confirmation behavior or irreversible consequences. The description adds little beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is efficient, but it fails to include critical information like the confirmation flow. The title duplicates information about confirmation, but the description itself is optimally concise for what it covers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is a destructive mutation with no output schema and no parameter descriptions, the description is too sparse. It does not mention what happens to the grant, whether bind/preview pattern is needed (siblings have bind/preview patterns for destructive actions), or how to handle the optional parameters. The title hints at a confirmation step that the description omits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no descriptions in the schema), and the description only mentions 'optional reason text' but does not explain the purpose of 'request_id' or 'idempotency_key'. With 4 parameters and required 'access_grant_id', the description leaves the agent to guess the semantics of the optional parameters, especially 'idempotency_key', which implies retry behavior not mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Revoke') and direct object ('access grant'), and the title adds context about confirmation in Yardstick. It is distinct from siblings like 'yardstick_access_grants_create' and 'yardstick_access_grants_list'. The term 'explicit' avoids ambiguity with system grants, which is helpful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 used to revoke an access grant, but does not explicitly state when to use it versus alternatives (e.g., when you need to disable a grant vs. delete it). It does not provide conditions or exclusions, leaving some inference up to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_application_interview_sessions_ensureMake sure an interview exists for a roundCIdempotentInspect
Ensure an application interview session for an explicit round id.
| Name | Required | Description | Default |
|---|---|---|---|
| round_id | Yes | ||
| request_id | No | ||
| round_title | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| interview_plan_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag idempotentHint=true, readOnlyHint=false, destructiveHint=false; the description is consistent and adds the end-state idea that a session will exist for the round. It does not state what happens when one already exists, whether it creates or reuses, what it returns, or any permission/rate-limit context, so credit is limited.
Agents need to know what a tool does to the 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 no filler and the key id (round) is front-loaded. It is concise to the point of under-specification, but as far as structure and length it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, 0% parameter coverage, and no behavioral detail, this is too thin for reliable invocation. An agent cannot predict the return value, the effect on an existing session, or the role of the optional parameters, and there is no pointer to 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 descriptions cover 0% of six parameters, and the description only references round_id (and application_id by tool-name inference). Optional params like round_title, request_id, idempotency_key, and interview_plan_id get no explanation, so an agent cannot tell what values to supply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description name a specific resource ('application interview session') and scope it to an explicit round id, with 'Ensure'/'Make sure an interview exists' conveying an idempotent create-if-missing intent. This is enough to distinguish it from list/read/cancel/start session tools, though 'Ensure' alone is slightly vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sentence tells an agent when to choose this over yardstick_application_interview_sessions_list or the interview_sessions_* lifecycle tools, and no exclusions or alternatives are named. The only implicit signal is the word 'Ensure', which is too weak to route reliably.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_application_interview_sessions_listList interviews for an applicationBRead-onlyIdempotentInspect
List interview sessions for an application.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral detail beyond the basic list operation, such as whether cancelled sessions are included, ordering, pagination, or output shape.
Agents need to know what a tool does to the 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, wasted words, or redundant restatement. It front-loads the action and scope 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 and annotations covering its safe read-only nature. However, with no output schema, the description could have added useful context about what the returned list contains or whether pagination is involved. It is minimally viable 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?
Schema description coverage is 0%, so the description needed to explain parameter semantics, but it only says 'for an application.' This weakly maps to application_id but says nothing about the optional request_id or the expected format or behavior of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), a concrete resource ('interview sessions'), and a clear scope ('for an application'). This is enough to distinguish it from sibling session tools like interview_sessions_read or application_interview_sessions_ensure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to choose this tool over related alternatives, such as reading a single interview session or ensuring sessions exist. There is no stated context, exclusion, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_admit_candidateMove an application to CandidatesBDestructiveIdempotentInspect
Move one reviewed application to Candidates. Does not schedule interviews or send email.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=false, so the safety profile is largely covered structurally. The description adds scope-limiting context ('does not schedule interviews or send email') and the review precondition, but says nothing about reversibility (an undo sibling exists) or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler; the core action comes first and the scope limitation second. It is efficient, though arguably too terse given the surrounding gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation in a dense sibling set (undo_candidate_admission, decide, transition_direct/bind/preview), the description covers the core action and one negative boundary but omits preconditions of 'reviewed', the reversal path, and any parameter meaning. 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?
Three parameters with 0% schema description coverage: application_id is only obliquely implied by 'one reviewed application', and request_id and idempotency_key are completely unexplained. Given that idempotency_key semantics (safe retry) are operationally important for a mutation, the description fails 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?
States a specific verb and resource ('Move one reviewed application to Candidates'), which clearly distinguishes it as a stage-transition mutation rather than a read or create. However, it never names its closest siblings (yardstick_applications_undo_candidate_admission, yardstick_applications_decide, the transition_* family), so an agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'one reviewed application' implies a precondition (the application must already be reviewed) and the trailing sentence rules out adjacent behaviors (interview scheduling, email), which narrows usage somewhat. But there is no explicit when-to-use statement or routing to alternatives such as undo_candidate_admission for reversal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_archive_bindConfirm and archive an applicationBDestructiveIdempotentInspect
Bind an already-previewed application archive with explicit approval metadata and matching idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| binding | Yes | ||
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description doesn't need to restate those. The description adds context about requiring 'explicit approval metadata' and 'matching idempotency key', which clarifies the safety contract. However, it doesn't disclose what gets archived, whether the application becomes inaccessible, or any side effects beyond archiving.
Agents need to know what a tool does to the 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 key constraint ('already-previewed') is front-loaded. It earns its place by conveying the essential precondition and the approval requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, idempotent bind operation with a nested binding object and 0% schema coverage, yet the description doesn't explain the preview-bind workflow, what the binding fields mean, or what happens after archiving. An agent would struggle to construct a valid 'binding' object 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, but it only mentions 'approval metadata' and 'idempotency key' generically. It doesn't explain the nested 'binding' object's fields (preview_hash, approved_action_key, approved_input_hash, approved_idempotency_key, resource_version_precondition) or how they relate to a prior preview. The 'reason' and 'request_id' parameters are 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 states a specific verb ('Bind') and resource ('already-previewed application archive') with explicit approval metadata and idempotency key. It distinguishes from preview tools by emphasizing 'already-previewed' and 'explicit approval metadata', though it doesn't name sibling alternatives 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 description implies this is the confirmation step after a preview, and the 'already-previewed' phrasing signals it should not be used before previewing. It doesn't explicitly name alternatives like yardstick_applications_archive_preview or transition_bind, but the context is clear enough for an agent to infer the preview-then-bind workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_archive_previewPreview archiving an application (nothing changed yet)BIdempotentInspect
Preview application archive approval requirements only; bind fields are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The title and description explicitly claim no state change ('nothing changed yet,' 'Preview ... only'), but the annotations set readOnlyHint=false. This is an annotation contradiction. The description does add useful context about rejecting bind fields, but the conflicting readOnlyHint undermines the behavioral signal.
Agents need to know what a tool does to the 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 the core purpose in the first clause. The second clause is terse but relevant. It wastes no words, though 'bind fields are rejected' could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four undocumented parameters, the description is too thin. It does not describe what the approval requirements look like, how the response is structured, what makes a request valid, or how to act on the preview results. The non-mutating nature is clear, but substantial operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain application_id, reason, request_id, or idempotency_key. The only parameter-related statement, 'bind fields are rejected,' is ambiguous about which fields those are and does not compensate for the complete 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 action ('Preview') on a specific resource ('application archive approval requirements') and limits scope with 'only.' The title reinforces the non-mutating nature with 'nothing changed yet,' and the warning that 'bind fields are rejected' helps distinguish this from the archive_bind 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 phrase 'Preview ... only' and 'bind fields are rejected' clearly tells an agent this is not the tool for actually performing the archive bind. However, it does not explicitly name the alternative or say 'use this before yardstick_applications_archive_bind,' so the when-to-use guidance is mostly implied rather than fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_createAdd an applicationAInspect
Create a recruiter or agent-sourced application for an existing person and job posting.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| request_id | No | ||
| job_posting_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already indicating a non-read-only, non-destructive mutation and no idempotency, the description adds the prerequisite that the person and job posting must already exist. It stops short of explaining side effects, idempotency_key behavior, or what happens on duplicate creation, but the annotation baseline lowers the burden.
Agents need to know what a tool does to the 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 front-loads the action and packs the key qualifiers (source type and existence requirement) without filler. Every phrase contributes to selection and 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?
For a flat four-parameter create operation, the description is minimally sufficient: it names the core entities and the required preconditions while annotations cover the mutation safety profile. The optional request_id/idempotency_key semantics and any post-create behavior remain unaddressed, leaving a clear but not fatal 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%, so the description has to compensate for parameter meaning. It semantically covers person_id and job_posting_id via 'existing person and job posting,' but it says nothing about request_id or idempotency_key, leaving two of four parameters effectively 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 uses a specific verb ('Create') and resource ('application'), and narrows the action with 'recruiter or agent-sourced' and 'for an existing person and job posting.' This distinguishes it from sibling operations like update, transition, and archive without needing to introspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for an existing person and job posting' gives a clear prerequisite and context for when to call this tool, and the create stance implies it is for adding rather than updating/transitioning. It does not, however, name alternatives or explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_decideDecide on an applicationADestructiveIdempotentInspect
Decide on an application without a review task. Only the job's hiring manager may decide; anyone else gets application not found. Reason codes must be system codes or your organization's. Reject disqualifies the candidate.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| decision | Yes | ||
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| reason_code_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructive/idempotent/not-readOnly, and the description adds real value beyond them: the authorization rule (non-HM callers get 'application not found'), the reason-code constraint (system or org codes only), and the concrete consequence that 'Reject disqualifies the candidate'. It still says nothing about idempotency or the scheduling side effect of approve_and_schedule.
Agents need to know what a tool does to the 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 dense sentences, zero filler, and the most decision-critical constraint (permission gate) is front-loaded after the one-line purpose 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?
For a 6-parameter mutation tool with no output schema and 0% schema coverage, the description covers authorization, reason codes, and the reject consequence but omits idempotency/request-id semantics and parameter documentation, leaving clear gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. 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 6 parameters, so the description carries the full burden but only partially compensates: it constrains reason_code_ids and hints at the 'reject' decision value, while note, request_id, idempotency_key, and the other four decision enum values are never mentioned.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Decide') and resource ('application') and adds the scoping qualifier 'without a review task', which separates it from decision paths that involve review tasks or the email-decision apply/preview siblings. It is clear, though it does not name the specific sibling alternative by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a permission gate (only the hiring manager) and an implicit scenario ('without a review task'), but it never explicitly names when to prefer this over yardstick_applications_transition_direct or yardstick_applications_email_decision_apply. Usage 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.
yardstick_applications_decide_hiring_stepDecide a hiring manager stepAIdempotentInspect
Advance or hold a candidate on a step that waits on the hiring manager, or change that decision. The hiring manager or a recruiter on the job may decide. Leave out interview_id to decide the latest such step. A note can go to the recruiter with send_to_recruiter.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| decision | Yes | ||
| request_id | No | ||
| interview_id | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| send_to_recruiter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, idempotent, non-destructive operation. The description adds meaningful behavior beyond that: who is authorized to decide, how to target the latest waiting step when interview_id is omitted, and how a note can be routed to the recruiter via send_to_recruiter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with no filler. The core action and scope come first, followed by permission and targeting details, then the optional note behavior. Every sentence contributes relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the essential purpose, authorization, targeting behavior, and a side-effect option. Rich annotations handle idempotency and safety signals, though the unexplained request_id and idempotency_key parameters keep it from being 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 carry parameter meaning. It explains decision, interview_id, note, and send_to_recruiter, but leaves application_id, request_id, and idempotency_key entirely unexplained. It partially compensates for the low schema coverage, but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: advance or hold a candidate on a hiring-manager step, or change that decision. It clearly scopes the tool to steps that wait on the hiring manager. It does not, however, distinguish itself by name from similar siblings such as yardstick_applications_decide or yardstick_applications_hiring_step_decision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usable context: the hiring manager or a recruiter on the job may decide, and interview_id may be omitted to target the latest such step. It does not explicitly say when to prefer this tool over sibling decision tools or when not to use it, so the routing guidance remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_email_decision_applyApply a status change and its candidate emailCDestructiveIdempotentInspect
Apply an application status-change email decision with idempotency metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description doesn't need to repeat those. The description adds 'with idempotency metadata', which aligns with the idempotentHint and hints at the idempotency_key parameter. However, it doesn't disclose side effects (e.g., that it changes the application status and may send an email) or any prerequisites. The title partially covers this ('Apply a status change and its candidate email'), but the description itself adds minimal behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action ('Apply') and the object ('an application status-change email decision'). It is not verbose and contains no filler. Despite being under-specified, this dimension only measures conciseness and structure, and the description is exemplary in that regard.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with three parameters, no output schema, and zero schema descriptions, this description is severely incomplete. It does not explain what an 'email decision' is, how to obtain one, what happens when applied (e.g., status change and email sending), or the role of idempotency_key. An agent cannot safely invoke this tool without additional information, making it inadequate for its 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 explain parameter meanings. It only mentions 'idempotency metadata' without specifying which parameter is the idempotency key. It does not explain request_id, application_id, or idempotency_key semantics, nor does it indicate that application_id is required. The description fails to compensate for the lack of schema descriptions, leaving an agent guessing about parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Apply') on a specific resource ('an application status-change email decision') and mentions idempotency metadata. It distinguishes from preview tools (e.g., email_decision_preview) by indicating this is the apply step, and from transition_direct by referencing an 'email decision' rather than a raw transition. However, it doesn't explicitly clarify what constitutes an 'email decision' or how it differs from the related status_email_poc_bind, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention that a decision should first be previewed (e.g., via email_decision_preview) before applying, nor does it state that this tool is the final step after previewing. There are no exclusions or conditions. An agent would not know if this is the right tool without further context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_email_decision_previewPreview the candidate email for a status change (nothing sent)AIdempotentInspect
Preview the candidate email decision for an application status change without mutating the application or drafts.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly guarantees no mutation of the application or drafts, which is valuable because the annotation readOnlyHint is false)Skip this valuable context is not carried by annotations. It also reinforces the idempotent and non-destructive nature already hinted at by idempotentHint and destructiveHint. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the action 'Preview'. It avoids redundancy and effectively clarifies the non-mutating behavior. It could be slightly more structured, but there is no unnecessary 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 there is no output schema, the description should explain what the preview returns (e.g., email subject, body, recipient) but does not. It also leaves parameter semantics unexplained. While the tool is simple and the required application_id is implied, an agent cannot know the exact request construction or response format, making the description insufficient for correct invocation 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 provides zero information about the parameters. Schema description coverage is 0%, so the description must compensate, but it mentions neither application_id nor the optional request_id and idempotency_key. The only hint is the word 'application' in the tool name, which is not enough to clarify parameter semantics. There is no added meaning beyond the schema's structural definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the candidate email for an application status change alerting the agent to the fact that nothing is sent. It explicitly says it does not mutate the application or drafts, which distinguishes it from the sibling 'yardstick_applications_email_decision_apply' and related transition tools. The verb 'Preview' and the resource (candidate email for application status change) are 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 phrase 'without mutating the application or drafts' implicitly conveys that this is for previewing before applying a change rather than executing it. However, it does not explicitly name alternatives like yardstick_applications_email_decision_apply or yardstick_applications_transition_preview, nor does it state when to use this tool versus those siblings. The context is clear enough for a knowledgeable agent but lacks explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_hiring_step_decisionRead the hiring manager decisionBRead-onlyIdempotentInspect
Read where the hiring manager's decision stands on the candidate's latest step that waits on one: advanced, held, waiting, or none.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine behavioral value by enumerating the possible decision states returned (advanced, held, waiting, none), which is otherwise absent since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the verb and resource and ends with the useful return-value enumeration. 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 simple read tool with annotations carrying the safety profile and no output schema, the description covers purpose and return states adequately. However, the two parameters are undocumented and the phrase 'step that waits on one' is slightly convoluted, leaving an agent to infer the scoping 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% and the description never mentions application_id or request_id. The application_id name is self-evident, but request_id (likely an idempotency/correlation key) is entirely unexplained in either the description or 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?
States a specific verb ('Read') and resource (the hiring manager's decision on the candidate's latest pending step), which is enough to distinguish it from the write sibling yardstick_applications_decide_hiring_step. It does not explicitly name that sibling, so an agent must infer the read/write split, but the purpose itself 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?
There is no explicit when-to-use guidance, no statement of prerequisites, and no routing to alternatives such as yardstick_applications_read or yardstick_applications_decide_hiring_step. The read-only intent is only implied by the verb 'Read'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_listList applicationsARead-onlyIdempotentInspect
List application person + Job attachments visible to the current principal. Filter by --job-id to find candidates for a role, and by --hiring-manager-decision (advanced, held or waiting) for where the hiring manager's decision stands.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| job_id | No | ||
| request_id | No | ||
| starting_after | No | ||
| hiring_manager_decision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the useful scope qualifier 'visible to the current principal', which clarifies permission-limited results, but says nothing about pagination behavior or result shape — analogous to the calibration case that earned a 3.
Agents need to know what a tool does to the 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: purpose first, filter guidance second, with no filler. The CLI-style '--param' notation is mildly informal but compact and front-loads the essential information well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter list tool with no output schema and 0% schema description coverage, the description should at least mention pagination (limit/starting_after) and the request_id purpose. It adequately explains scoping and two filters but leaves the remaining parameters and result 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%, so the description carries the full burden, yet it only explains 2 of 5 parameters: job_id (with a use case) and hiring_manager_decision (repeating the enum values). The limit, request_id, and starting_after parameters — including pagination — are left entirely undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (application person + Job attachments) with an explicit visibility scope, so an agent can distinguish it from yardstick_applications_read or the many mutation siblings. The phrasing 'application person + Job attachments' is slightly awkward but conveys that it returns applications linking people to jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 concrete when-to-use guidance for two filters: --job-id 'to find candidates for a role' and --hiring-manager-decision 'for where the hiring manager's decision stands'. However, it never contrasts with alternatives such as yardstick_applications_read (single record) or people_list, so routing guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_readRead an applicationCRead-onlyIdempotentInspect
Read one application person + Job attachment by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that it reads by 'public id' and includes 'person + Job attachment', offering some content context but not detailing behavior on missing IDs or data format. This is modest added value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, but the compressed phrase 'person + Job attachment' sacrifices clarity. It is concise but somewhat ambiguous, so it doesn't fully earn its place as clear 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?
With two parameters, no output schema, and no nested objects, the description should still explain the unusual 'person + Job attachment' term and the optional request_id. It does neither, leaving agents uncertain about the exact call shape and return 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 parameter meanings. It implicitly maps 'public id' to application_id, but request_id is completely unmentioned. This is partial compensation at best and leaves a required-parameter gap for 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 read operation on an 'application' by public id. The phrase 'person + Job attachment' is ambiguous but still points to a specific resource type. The singular 'one' and 'by public id' help distinguish it from list operations, though it doesn't explicitly name 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?
There is no guidance on when to use this tool instead of alternatives like yardstick_applications_list or other read tools. It doesn't describe ideal use cases, prerequisites, or exclusions, leaving the selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_status_email_poc_bindConfirm the Offer status change and send its candidate emailCDestructiveIdempotentInspect
Bind the fixed applications-owned status/email approval POC with explicit approval metadata and a matching idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| binding | Yes | ||
| decision | Yes | ||
| email_type | Yes | ||
| request_id | No | ||
| target_status | Yes | ||
| application_id | Yes | ||
| current_status | Yes | ||
| idempotency_key | No | ||
| personalization_instruction | No | ||
| requested_sender_identity_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description does not need to restate those. It does add useful operational context by saying the call requires 'explicit approval metadata and a matching idempotency key,' which clarifies that this is an approved, replay-safe bind. However, it does not disclose the concrete consequences—status mutation and an outgoing candidate email—beyond what the title and annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, so it is concise. However, the phrase 'fixed applications-owned status/email approval POC' is dense and confusing, and the sentence does not lead with an approachable outcome. Brevity comes at the expense of 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?
This is a destructive 11-parameter bind operation with a nested binding object, no output schema, and no parameter descriptions, yet the description omits the key workflow prerequisite: running a preview first to obtain the approval metadata. It also gives no hint about where binding values come from or what a successful call returns. The schema constants constrain some inputs, but the overall workflow context is still missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description had to compensate by explaining the parameters. It adds a little meaning by grouping the nested binding fields as 'explicit approval metadata' and by saying the idempotency key must match. But it leaves preview_hash, approved_action_key, approved_input_hash, and resource_version_precondition completely unexplained, so an agent still cannot determine what values to supply or where they come from.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('bind') and names a specific resource ('applications-owned status/email approval POC'), so it is not a tautology. However, the wording is jargon-heavy and fails to state the real-world effect that the title conveys: confirming the Offer status change and sending the candidate email. An agent would need to infer the apply-after-preview workflow from sibling-naming conventions rather than from the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to call this tool versus the many sibling bind/preview/transition tools. It does not mention that a preview should precede this bind, nor does it say not to use yardstick_applications_transition_bind for this workflow. Without that context, an agent cannot reliably choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_status_email_poc_previewPreview the Offer status change and its candidate email (nothing changed yet)CIdempotentInspect
Preview the fixed applications-owned Interviewing to Offer status/email approval POC without mutating status or email state.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| decision | Yes | ||
| email_type | Yes | ||
| request_id | No | ||
| target_status | Yes | ||
| application_id | Yes | ||
| current_status | Yes | ||
| idempotency_key | No | ||
| personalization_instruction | No | ||
| requested_sender_identity_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the tool mutates nothing ('without mutating status or email state'), but the annotations set readOnlyHint=false, which indicates the tool is not read-only. This is a direct contradiction, and per the rubric behavioral transparency must be scored 1 with an annotation contradiction flag.
Agents need to know what a tool does to the 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 core purpose and the safety guarantee. There is no filler or repetition beyond the title, and every phrase adds relevant 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?
This is a complex 10-parameter tool with no output schema and no parameter descriptions, yet the description only states that it is a non-mutating preview. It does not explain the expected preview output, how the parameters shape the preview, or what follow-up tool should be used to actually apply the change.
Complex tools with many parameters or behaviors need more documentation. 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 almost no parameter-level semantics beyond naming the statuses 'Interviewing' and 'Offer' and the concept of email. With 10 parameters and 5 required ones, the description fails to compensate for the absent 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 action—'Preview'—and a specific resource: the applications-owned Interviewing-to-Offer status/email approval POC. It distinguishes from mutating sibling tools by saying it operates 'without mutating status or email state,' though it does not name a specific 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 a preview-before-apply workflow but gives no explicit when-to-use guidance, prerequisites, or mention of the sibling apply/bind tools as alternatives. An agent must infer that this is the safe preview counterpart to a mutating operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_transition_bindConfirm and apply an application status changeADestructiveIdempotentInspect
Bind an already-previewed application transition with explicit approval metadata and matching idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| status | Yes | ||
| binding | Yes | ||
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| employment_start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive and idempotent behavior)Skip. The description adds that the action requires 'explicit approval metadata' and a 'matching idempotency key', which are meaningful behavioral guardrails beyond the annotations. It also clarifies this is the bind step, not a fresh transition.
Agents need to know what a tool does to the 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-loaded with the verb and resource, and it immediately conveys the key precondition ('already-previewed') and the two essential concepts (approval metadata, idempotency key). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (nested binding object, 5 required fields, no output schema, no parameter descriptions). The description does not explain how to obtain the binding values or what the response looks like. An agent cannot reliably call this tool without additional documentation or sibling tool descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It mentions 'approval metadata' and 'idempotency key' but fails to explain the binding object fields (preview_hash, approved_action_key, etc.) or their relationship to a preview. This leaves the agent unable to correctly populate the 7 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 verb ('Bind') and resource ('application transition'), and scopes it to 'already-previewed' transitions. This distinguishes it from preview tools and from the direct transition tool, even without naming 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 implies this tool is used after a preview has occurred ('already-previewed'), but it does not explicitly instruct the agent to call the preview tool first, nor does it mention when to use this instead of the direct transition tool. Context is present but exclusions are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_transition_directMove an application to another statusADestructiveIdempotentInspect
Directly write a non-terminal application transition; approval-only statuses are rejected. Optionally target a configured stage by id with pipeline_stage_id (the resolved stage is reported back).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| status | Yes | ||
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| pipeline_stage_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description adds value beyond them: it discloses that only non-terminal transitions are permitted, that approval-only statuses are rejected outright, and that pipeline_stage_id resolves to a stage which is reported back in the response. No contradiction with annotations; the write behavior aligns with readOnlyHint=false.
Agents need to know what a tool does to the 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 constraint (direct, non-terminal, approval rejected) is front-loaded, and the optional pipeline_stage_id behavior is packed efficiently into the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no output schema, the description covers the central decision (which transitions are allowed) and the key optional parameter's effect. However, it does not explain what 'non-terminal' means in practical terms, nor the role of idempotency_key/request_id, and it relies on sibling naming for the approval-flow contrast.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It adds context only for pipeline_stage_id (targets a configured stage, resolved stage reported back). The required parameters application_id and status, plus reason, request_id, and idempotency_key, receive no semantic guidance 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 ('Directly write') on a specific resource ('non-terminal application transition') and clarifies scope by noting approval-only statuses are rejected. It distinguishes itself from the transition_bind/transition_preview siblings via the word 'Directly' and the approval rejection clause, though it doesn't name the alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The rejection of approval-only statuses implies when NOT to use this tool, and the sibling set (transition_bind, transition_preview) suggests the alternative path, but this is left to inference. No explicit 'use X instead when approval is required' guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_transition_previewPreview an application status change (nothing changed yet)BIdempotentInspect
Preview approval-required application transitions only; bind fields and direct-write targets are rejected. Optionally target a configured stage by id with pipeline_stage_id (status must match the stage's mapped status).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| status | Yes | ||
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| pipeline_stage_id | No | ||
| employment_start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description and title ('Preview', 'nothing changed yet') clearly indicate a non-mutating preview operation, but the annotation readOnlyHint=false suggests the tool may modify state. This is a direct contradiction. Since annotations are meant to guide the agent on side effects, the mismatch is critical and the description provides no clarifying behavioral details (e.g., auth requirements, rate limits, what is computed in the preview).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant words. It front-loads the key constraint (approval-required only) and rejection of bind/direct targets, then adds the optional pipeline_stage_id detail. The structure is efficient, though the second sentence is slightly dense and could benefit from clearer separation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parametershol, no output schema, and conflicting annotations. The description covers some scope restrictions but does not explain what the preview returns, the meaning of the other parameters, or any behavioral context (e.g., whether a preview has side effects, side-effects/approval flow, auth needs). It is insufficient for an agent to call this tool confidently beyond the basic restriction checks.
Complex tools with many parameters or behaviors need more documentation. 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 compensate for the 7 parameters. It only adds meaning for pipeline_stage_id (mentions targeting a configured stage and status match) and implicitly touches status. The other parameters (reason, request_id, idempotency_key, employment_start_date, application_id) are not explained at all beyond the raw schema types and constraints, leaving the agent to guess their role in a preview context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Preview'), a resource ('application transitions'), and a clear scope ('approval-required only'). It explicitly rejects bind fields and direct-write targets, which distinguishes it from the sibling tools 'yardstick_applications_transition_bind' and 'yardstick_applications_transition_direct'. The title reinforces that nothing changes yet, making the tool's role 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 says the tool is for approval-required transitions only and that bind/direct targets are rejected, which gives a clear when-not-to-use condition. It also specifies when to optionally provide pipeline_stage_id and the status constraint. However, it does not explicitly name the alternative tools (e.g., transition_bind, transition_direct) for cases that need binding or direct writes, 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.
yardstick_applications_undo_candidate_admissionUndo an accidental move to CandidatesADestructiveIdempotentInspect
Correct one accidental candidate admission using its current admission ID. No time limit; refused once candidate activity starts. Preserves history and excludes the corrected episode from admission reporting.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| expected_admission_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is partly covered; the description adds non-obvious behavior beyond them — the no-time-limit rule, that it is refused once candidate activity begins, that history is preserved, and that the episode is excluded from admission reporting. These operational and reporting side effects are exactly the added value annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each carrying distinct information (action, timing/refusal rule, side effects), with the core purpose front-loaded and 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 destructive, idempotent mutation with no output schema, the description covers preconditions, reversibility semantics, and reporting side effects well. The remaining gap is parameter-level detail, since none of the four fields are described in 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% with four parameters, so the description must carry the full burden. It only explains expected_admission_id ('its current admission ID', implying the concurrency check) and says nothing about application_id, request_id, or idempotency_key, leaving three of four parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Correct one accidental candidate admission') and names the identifying key (the current admission ID). An agent can distinguish this corrective undo from the sibling yardstick_applications_admit_candidate without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'No time limit; refused once candidate activity starts' gives a concrete precondition that determines when the call will succeed or fail. It is clear context, but it does not explicitly contrast the tool with alternatives such as admit_candidate or the transition/decide tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_applications_updateUpdate an applicationCDestructiveIdempotentInspect
Update one application with schema-bound public API fields.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | ||
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, idempotentHint=true, and destructiveHint=true, so the safety/mutation profile is established. The description adds a modest behavioral boundary by saying updates are limited to 'schema-bound public API fields', but it does not explain what destructive consequences may occur, how idempotency is implemented, or whether updates are partial or full replacements. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loading the action and target. However, the phrase 'schema-bound public API fields' is jargon-heavy and somewhat opaque, which slightly reduces clarity even though the structure is compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters, no output schema, and no parameter descriptions, this tool needs more context to be safely invoked. The description fails to mention the meaning of idempotency_key, the specific fields that can be updated, prerequisites, or the nature of destructive behavior. Annotations help but do not fill the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate by explaining stage, request_id, application_id, or idempotency_key. Saying 'schema-bound public API fields' gives no per-parameter meaning, allowed values, or format hints. The agent is left entirely dependent on parameter names, which are insufficient 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 states a specific verb ('Update') and resource ('one application'), making the core operation clear. The phrase 'schema-bound public API fields' adds some scope but does not explicitly differentiate this from the many application-related sibling operations such as transitions, archive binds, or email decision applies. It is understandable, but not fully distinguished from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives like applications_transition_direct, applications_archive_bind, or applications_email_decision_apply. An agent is not told which update scenarios belong here and which belong to a sibling, so it must infer the boundary 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.
yardstick_ats_imports_applyConfirm and apply an ATS importAIdempotentInspect
Apply an approved ATS import preview with a preview_hash matching the stored dry-run. Creates people/jobs/interview_plans(stub)/job_postings/applications with idempotent replay; never sends outreach, merges people, or deletes records.
| Name | Required | Description | Default |
|---|---|---|---|
| import_id | Yes | ||
| request_id | No | ||
| preview_hash | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description explicitly discloses what the tool creates (people, jobs, interview plans as stubs, job postings, applications), that it replays idempotently, and what it never does (send outreach, merge people, delete records). This gives the agent a concrete side-effect model without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first front-loads the action and its governing condition, the second compactly lists created and excluded behaviors. 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 mutating apply tool with no output schema, the description covers the purpose, side effects, idempotency, and safety exclusions well. It falls slightly short on explicit parameter guidance for request_id and idempotency_key, and it does not name the dry-run predecessor by tool name, but an agent can still correctly invoke it with the required 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?
With 0% schema description coverage, the description must explain the parameters, but it only meaningfully clarifies preview_hash ('matching the stored dry-run'). It does not explain import_id, request_id, or idempotency_key, even though idempotent replay is mentioned and idempotency_key is likely relevant to that behavior. The description leaves most parameter semantics 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 states a specific verb ('Apply') and resource ('ATS import preview'), includes the key condition (preview_hash matching the stored dry-run), and enumerates the entity types created. This clearly distinguishes it from sibling tools like yardstick_ats_imports_dry_run, yardstick_ats_imports_read, and yardstick_prospect_imports_apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: apply only an approved ATS import preview whose preview_hash matches the stored dry-run. It implicitly routes the agent toward the dry-run-then-apply workflow and away from read-only or preview-only tools, though it does not explicitly name alternatives or give when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_ats_imports_dry_runPreview an ATS import (no records written)BIdempotentInspect
Preview a structured-row ATS import of candidates, jobs, and applications (source_kind: csv). JSON rows only; no raw CSV/archive file reads, no application conversion side effects, and low-confidence stage/fuzzy matches require explicit apply decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | No | ||
| metadata | No | ||
| candidates | No | ||
| request_id | No | ||
| session_id | No | ||
| source_kind | No | ||
| applications | No | ||
| source_label | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description asserts a dry-run behavior with 'Preview', 'no records written' in the title, and 'no application conversion side effects.' This directly contradicts the annotation readOnlyHint: false, which signals the tool may not be read-only. Because the description conflicts with the provided annotation, the score must be 1 per the rubric. The extra detail about JSON-only input and low-confidence match handling would otherwise be valuable behavioral disclosure, but the contradiction undermines trust.
Agents need to know what a tool does to the 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 no filler. It front-loads the primary purpose and packs the key constraints (JSON only, no raw file reads, no conversion side effects, explicit apply decisions for low-confidence matches). A more structured layout could improve scannability, but the content is tight and every clause adds 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 is a complex tool with 9 parameters, nested arrays, and no output schema. The description does not explain what the preview returns (e.g., validation errors, match summaries, or confirmation), nor does it clarify which parameters are typically required despite none being marked required. It also gives no usage examples or guidance on constructing the import payload. The description is incomplete for safe and correct invocation of such a multifaceted dry-run import tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 9 parameters, so the description must compensate. It only mentions 'source_kind: csv' and 'JSON rows only,' giving a hint about source_kind and input format, but it does not explain the meaning or relationships of jobs, candidates, applications, metadata, request_id, session_id, source_label, or idempotency_key. The description names the main resource categories but leaves most parameter semantics to the schema, which is insufficient at this parameter count and coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Preview a structured-row ATS import of candidates, jobs, and applications.' It clearly scopes the tool to CSV-style structured rows and distinguishes it from related apply/read tools by emphasizing 'preview', 'dry run' in the name, and 'no application conversion side effects.' An agent can tell this apart from yardstick_ats_imports_apply and yardstick_ats_imports_read without deeper 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 provides clear context for when to use this tool: before applying an import, with JSON rows only, and when avoiding side effects or raw CSV/archive reads. It does not explicitly name the alternative apply tool or state 'use this instead of apply when you only want validation,' but the constraints strongly imply a dry-run workflow. The absence of explicit 'when not to use' wording keeps this at a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_ats_imports_readRead an ATS import batchARead-onlyIdempotentInspect
Read one ATS import dry-run/apply batch and its rows by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| import_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the batch and its rows are returned and lookup is by public id, but no further behavioral context (pagination, permissions, error cases) 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?
One sentence, front-loaded with the action and resource, with no filler, tautology, or redundant restatement of the title. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool, the core call (import_id by public id, returning batch and rows) is stated. However, with no output schema and no parameter documentation, request_id's purpose and the relationship between dry-run and apply batches remain unclear, making the description minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. 'By public id' clarifies that import_id is the batch's public identifier, but request_id is left completely unexplained and there is no hint about when it is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read'), names the resource ('ATS import dry-run/apply batch'), and states the payload scope ('and its rows'). This clearly distinguishes it from sibling operations like yardstick_ats_imports_apply and yardstick_ats_imports_dry_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?
No explicit when-to-use or alternative routing is given. The read semantics imply it should be used to inspect a previously created dry-run/apply batch, but the description does not name apply/dry_run or explain when this read is preferable to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_audit_log_listList audit log entriesBRead-onlyIdempotentInspect
List public Yardstick audit log entries visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the visibility scoping ('public' and 'visible to the current principal') but does not disclose pagination, ordering, or other runtime 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 a single clear sentence with no filler. It front-loads the action and resource, then adds the scopeful visibility qualifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameter semantics in the description, the agent is left without important details such as response shape, pagination behavior, or how request_id and starting_after interact. The annotations cover safety but not the operational details needed 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% and the description adds no meaning for limit, request_id, or starting_after. An agent must guess that starting_after is a pagination cursor and request_id is an identifier filter purely from 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), a specific resource (Yardstick audit log entries), and a scope qualifier (public entries visible to the current principal). This clearly distinguishes it from the many other list tools among the 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 implies the tool is for viewing audit log entries, but it gives no explicit guidance on when to prefer it over alternatives or when not to use it. The 'visible to the current principal' qualifier provides some access context, but no conditions, exclusions, or sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_bulkConfirm bulk automation rule changesADestructiveIdempotentInspect
Switch rules on, off or delete them. First use mode=preview with rule_ids or filter. Show the affected rules and skipped rules to the user and get explicit confirmation BEFORE applying. Then use mode=apply with only the exact rule_ids returned by preview; never reapply the filter. Pick a step rules are skipped when switching on. Warn that shared pipeline rules change for every job on that pipeline, including jobs outside the filter.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| action | Yes | ||
| filter | No | ||
| rule_ids | No | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, and the description adds substantial context beyond them: the mandatory preview-then-apply gate, explicit user confirmation before applying, reporting of affected and skipped rules, the pick-a-step skip behavior when switching on, and the blast-radius warning that shared pipeline rules change for every job on that pipeline. That is exactly the behavioral disclosure a destructive bulk operation needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence is an instruction with no filler, and the workflow order is front-loaded. It is dense — five imperative sentences in a single undifferentiated block — but nothing could be cut without losing operational 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 destructive 6-parameter bulk tool with a nested filter object, no parameter descriptions and no output schema, the description covers the critical safety workflow and the preview return contents (affected/skipped rules). It falls short on filter semantics and the request_id/idempotency_key parameters that an agent would need for correct retry behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It explains mode (preview vs apply), rule_ids (exact ids from preview) and implies action ('switch on, off or delete'), but says nothing about the filter's fields, request_id, idempotency_key, or the 500-item cap on rule_ids.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 specific verb set (switch on, off, delete) and the resource (automation rules in bulk), so an agent can tell it apart from single-rule siblings like yardstick_automation_rules_update or yardstick_automation_rules_delete. It never explicitly names those siblings, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Strong procedural guidance: 'First use mode=preview with rule_ids or filter', 'Then use mode=apply with only the exact rule_ids returned by preview; never reapply the filter' — a clear when-to-do-what sequence with an explicit prohibition. It does not compare against alternative tools (e.g. single-rule update/delete) for cases where bulk is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_copyCopy a rule to jobs or pipelinesBInspect
Copy one hiring process rule to job_ids, or one pipeline rule to pipeline_ids. Matches steps by name or kind and position, stages by name or mapped status. Unmatched copies start off and require Pick a step or Pick a stage. Copies are independent user rules.
| Name | Required | Description | Default |
|---|---|---|---|
| job_ids | No | ||
| rule_id | Yes | ||
| request_id | No | ||
| pipeline_ids | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a mutation (readOnlyHint=false) that is not idempotent and not destructive. The description adds substantial non-obvious behavior: matching is by step name/kind and position for steps, by name or mapped status for stages; unmatched copies start disabled and need manual step/stage selection; copies become independent user rules. That is real context beyond the structured hints, though return/idempotency behavior is still unstated.
Agents need to know what a tool does to the 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 dense sentences, front-loaded with the core action and destination, then matching rules and the unmatched-copy consequence. Every sentence carries information, though the 'Pick a step' / 'Pick a stage' UI phrasing is somewhat opaque without that 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?
No output schema exists, so return values need not be described, and the mutation's safety profile is covered by annotations. However, for a copy tool exposing request_id and idempotency_key while declaring idempotentHint=false, the description leaves deduplication/retry semantics and any permission requirements unexplained.
Complex tools with many parameters or behaviors need more documentation. 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 5 parameters, so the description must carry the full burden. It meaningfully explains job_ids, pipeline_ids and rule_id, but leaves request_id and idempotency_key completely undefined, and gives no format or constraint detail (e.g. the 50-item cap) for the arrays.
Input schemas describe structure but not intent. Descriptions should explain 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 (Copy) and resource (rule), and even splits purpose into two modes: a hiring-process rule copied to job_ids, or a pipeline rule copied to pipeline_ids. This clearly differentiates it from the automation_rules_create/update/delete siblings, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The two copy modes imply when the tool applies, but there is no explicit when-to-use guidance, no exclusions, and no pointer to alternatives like automation_rules_create or automation_rules_preview. Usage must be inferred from the two described scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_createCreate a stage automation ruleBInspect
Create a named workflow automation rule with stage or step triggers, job scope, delivery mode, timing and a typed action. Authoring executes no action.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| action | Yes | ||
| job_id | No | ||
| timing | No | ||
| trigger | Yes | ||
| position | No | ||
| condition | No | ||
| is_active | No | ||
| job_scope | No | ||
| request_id | No | ||
| starter_key | No | ||
| delivery_mode | No | ||
| idempotency_key | No | ||
| job_posting_ids | No | ||
| needs_step_pick | No | ||
| pipeline_stage_id | No | ||
| pipeline_template_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so safety profile is known. The description adds one genuinely useful fact beyond that: authoring executes no action at creation time. It does not cover idempotency_key/request_id behaviour or whether an invalid rule aborts atomically.
Agents need to know what a tool does to the 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 waste, and the core purpose is front-loaded. The closing clause about not executing an action earns its place; nothing is 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 17 parameters, deep nesting and no output schema, the description is thinner than the tool's complexity warrants, though the schema's enums and nested descriptions carry much of the load. It omits how job_scope selected vs all_compatible interacts with job_posting_ids, and how this tool relates to the preview/preview_draft siblings before committing a rule.
Complex tools with many parameters or behaviors need more documentation. 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% overall, so the description must compensate, and it names the main parameter domains: trigger (stage/step), job_scope, delivery_mode, timing and a typed action. That clarifies the discriminator concept and the trigger family, but leaves condition, position, needs_step_pick, job_posting_ids and the idempotency fields 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?
States a specific verb (Create) and resource (named workflow automation rule) plus the components it accepts: triggers, job scope, delivery mode, timing, typed action. This separates it from read/update/delete siblings, though it never explicitly names preview/bulk/copy as 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 explicit when-to-use or when-not-to-use guidance, and no routing to sibling tools such as yardstick_automation_rules_preview, _update, _bulk or _starters_apply. The only usable inference is that authoring is safe to attempt because it executes nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_deleteDelete a stage automation ruleADestructiveIdempotentInspect
Delete an automation rule. Plain delete (no approval preview→bind): rules are inert config, so deleting unfired config moves no candidates.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered structurally. The description adds genuine value beyond that by explaining the blast radius (rules are inert config; deleting unfired config moves no candidates), which tells the agent why this destructive call is low-risk. It omits permissions requirements and the fact that request_id serves as an idempotency 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?
Two tight sentences, front-loaded with the action and then the risk rationale; nothing redundant. The parenthetical "no approval preview→bind" is notation-dense and slightly harder to parse than plain prose, but it earns its 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?
For a destructive mutation with no output schema, the description covers purpose and blast radius, and annotations cover idempotency/destructiveness. It is still thin on parameter semantics (especially request_id) and error/failure behavior, so it is adequate but with visible 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% for two parameters, so the schema names rule_id and request_id without explaining either. The description adds no parameter meaning at all — nothing about rule_id format or that request_id is an idempotency/replay key — leaving the burden unfulfilled despite the low 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+resource ("Delete an automation rule") and immediately scopes it as a plain delete rather than the preview→bind pattern used by sibling operations, so an agent can distinguish it from yardstick_automation_rules_preview, _preview_rule, and the bind-style siblings 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?
By stating "Plain delete (no approval preview→bind)" it clarifies the condition under which this direct tool is used instead of a preview/approval flow, which is meaningful routing guidance in this sibling set. It stops short of explicitly naming the alternative tools or stating when deletion is inappropriate, so it is clear context but not a full when/when-not rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_listList stage automation rulesARead-onlyIdempotentInspect
List all job and pipeline rules. Filter by job_id (null for pipeline rules), department_id, pipeline_id, trigger, email or is_active. Job and department filters include inherited pipeline rules; pipeline filters also include hiring-step rules on jobs using that pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| job_id | No | ||
| trigger | No | ||
| is_active | No | ||
| request_id | No | ||
| pipeline_id | No | ||
| department_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds one behavioral nuance — that job/department filters surface inherited pipeline rules and pipeline filters surface hiring-step rules — which shapes what the caller actually receives. It says nothing about pagination, result cap, or ordering, 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?
Two sentences, both front-loaded with the operation then the filter semantics. There is no filler, repetition of the title, or restatement of schema types — every clause adds 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?
There is no output schema, so the description is the only source of shape information, and it covers what entities are returned and how inheritance expands results. It omits pagination/limits and default ordering, which an agent listing potentially large rule sets would want, but the essentials for a read-only list call are 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 carries the full burden, and it documents 6 of 7 parameters (job_id, department_id, pipeline_id, trigger, email, is_active) with semantic detail such as job_id being null for pipeline rules. Only request_id is left unexplained, which is a minor gap but prevents a perfect score.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List all job and pipeline rules') and clarifies the scope is both job- and pipeline-level rules. This distinguishes it from yardstick_automation_rules_read (single rule), but it does not explicitly name any sibling or contrast the list/read pair, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives real filtering context ('job_id null for pipeline rules', which filters include inherited pipeline rules and hiring-step rules), which is useful for choosing the right query. However, it never states when to use this tool versus automation_rules_read or automation_runs_list, and there are no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_previewPreview which automations a stage change would fire (runs nothing)ARead-onlyIdempotentInspect
Dry-run preview: resolve the active rules + their resolved action params for a sample application entering/leaving a stage. INERT — mints no scheduling link, creates no task, sends no email; executes nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| trigger | Yes | ||
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| pipeline_stage_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior, but the description adds concrete non-effects: no scheduling link, no task, no email, nothing executed. That directly addresses the main risk an agent would worry about when previewing automations, though auth and rate-limit context are 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?
Two tight sentences, front-loaded with the operation and followed by the safety guarantee. Every clause earns its place; there is no repetition 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?
The description covers purpose, return content (active rules plus resolved action params), and inertness, which is useful without an output schema. But with five parameters at 0% schema description coverage and no explicit usage routing, it is not fully 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?
Schema description coverage is 0%, so the description must carry parameter meaning. It only vaguely maps to application_id and stage/trigger via 'sample application entering/leaving a stage' and says nothing about request_id, idempotency_key, or the trigger enum values, leaving most parameter semantics 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 and resource: dry-run preview that resolves the active rules and their resolved action params for a sample application entering/leaving a stage. This scope clearly distinguishes it from siblings like automation_rules_list and automation_rules_preview_rule without requiring either 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 phrase 'Dry-run preview' implies this is the safe way to see what automations would fire before a real stage change, which is useful implied usage. However, it names no explicit alternative (e.g., transition_preview, preview_rule, transition_direct) and gives no when-to-use or prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_preview_draftPreview an unsaved workflow rule (runs nothing)BRead-onlyIdempotentInspect
Preview a rule before saving it, for a real application: the same result as preview-rule. Pass the rule as you would to create (CLI: --body-json '{"rule":{...}}'); add rule_id to preview unsaved edits to that rule. Saves nothing and executes no action.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | Yes | The rule as you would pass it to create. | |
| rule_id | No | ||
| request_id | No | ||
| application_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint: false, and openWorldHint: false. The description reinforces that it saves nothing and executes no action, which is useful, but it adds little about preconditions, error behavior, or what the preview returns.
Agents need to know what a tool does to the 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 compact sentences, front-loaded with purpose, then invocation detail, then the no-side-effects guarantee. The CLI example earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a deeply nested rule schema, no output schema, and only 25% schema description coverage, the definition is thin. It omits what the preview returns, how application_id is used beyond the vague 'real application' phrase, request_id semantics, and validation/error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description needs to compensate. It explains the main rule parameter as create-style input with a CLI example and explains conditional rule_id, but application_id is only weakly implied by 'for a real application' and request_id is never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Preview) and resource (an unsaved workflow rule) and scopes it to a real application. It clearly distinguishes previewing from saving, but the reference to 'preview-rule' does not explain how this tool differs from 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?
It gives a clear before-saving context and explains when to add rule_id for unsaved edits. However, it does not say when to choose this over yardstick_automation_rules_preview or yardstick_automation_rules_preview_rule; saying it gives the 'same result as preview-rule' muddies selection rather than routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_preview_rulePreview a saved workflow rule (runs nothing)BRead-onlyIdempotentInspect
Preview a saved workflow rule for a real application: recipients, sender, rendered email, scheduling links and missing prerequisites. Executes no action.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | ||
| request_id | No | ||
| application_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by specifying what the preview returns (recipients, sender, rendered email, scheduling links, missing prerequisites) and reinforcing that it executes no 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 compact, front-loaded sentence followed by a short safety clause. It is appropriately sized and wastes little space, though 'Executes no action' partly repeats the title and readOnlyHint annotation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining the return and it does list several preview outputs. However, it omits any mention of the optional request_id parameter and does not explain error behavior or prerequisite-check outcomes in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It loosely maps 'saved workflow rule' to rule_id and 'real application' to application_id, but it provides no semantics for the optional request_id parameter and no format or constraint details for any 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 gives a specific verb (Preview) and resource (a saved workflow rule) and even lists what the preview surfaces, which is clearer than a generic read. However, it does not distinguish itself from the sibling yardstick_automation_rules_preview or yardstick_automation_rules_read, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 validation context by noting it is 'for a real application' and reports 'missing prerequisites', but it never states when to choose this tool over the existing preview or read siblings. There are no exclusions or explicit alternatives given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_readRead a stage automation ruleARead-onlyIdempotentInspect
Read one automation rule by public id (its trigger, typed action, target stage, and is_active state).
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description needn't restate the safety profile. It adds value by naming the fields returned (trigger, typed action, target stage, is_active), but says nothing about what happens on an unknown id or authorization 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?
One tight sentence that front-loads the verb, resource, key parameter, and return shape with 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 simple read tool with full read-only annotations and no output schema, the description is largely adequate, but the missing request_id semantics and error behavior leave gaps in a 0%-coverage 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%, so the description should compensate for two undocumented parameters. It identifies rule_id implicitly as the public id, but says nothing about request_id or the string/minLength 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?
States a specific verb and resource ('Read one automation rule') and scopes it by public id, distinguishing it from list, preview, create, update, and delete siblings in the automation_rules family. The parenthetical previews the returned shape, reinforcing what the tool fetches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 public id' implies a lookup of an already-known rule, which differentiates it loosely from yardstick_automation_rules_list and the preview tools, but no explicit when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_rules_updateEdit a stage automation ruleCDestructiveIdempotentInspect
Edit a workflow automation rule's name, stage or step trigger, action, condition, job scope, delivery mode, timing or active state.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| action | No | ||
| job_id | No | ||
| timing | No | ||
| rule_id | Yes | ||
| trigger | No | ||
| position | No | ||
| condition | No | ||
| is_active | No | ||
| job_scope | No | ||
| request_id | No | ||
| starter_key | No | ||
| delivery_mode | No | ||
| idempotency_key | No | ||
| job_posting_ids | No | ||
| needs_step_pick | No | ||
| pipeline_stage_id | No | ||
| pipeline_template_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing beyond the field list: it does not say whether this is a partial patch (fields omitted are preserved) or a replace, what happens to in-flight runs, or that rule_id is required. No contradiction with annotations, but no added behavioral context either.
Agents need to know what a tool does to the 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, and the mutable facets come early. It is efficient, though its brevity is partly under-specification rather than discipline 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?
An 18-parameter destructive mutation with deeply nested action/condition/timing objects, no output schema and 0% schema coverage needs far more than one sentence. An agent cannot tell what a partial edit preserves, which field combinations are valid, or how omitted fields behave.
Complex tools with many parameters or behaviors need more documentation. 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 18 parameters, so the description carries the burden and largely fails. It names roughly eight fields but never explains the required rule_id, the 19-value trigger enum, the seven-branch action union, timing anchors, job_scope vs job_posting_ids, or the idempotency_key/request_id distinction.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Edit') plus the resource ('workflow automation rule') and enumerates the mutable facets (trigger, action, condition, job scope, delivery mode, timing, active state). That is enough to separate it from create/delete/copy siblings, though it never names those siblings or the preview/read tools an agent might need first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus yardstick_automation_rules_preview, preview_rule, copy, bulk or create, and no prerequisites (permissions, whether the rule must be inactive, whether a read is required first). The only signal is the verb 'Edit', which is implied usage at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_runs_listList stage automation runsARead-onlyIdempotentInspect
List workflow automation runs including public_state, reason, next_action, due_at and interview_session_id. Filter by application-id or rule-id. Read-only; runs are system-written.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | No | ||
| request_id | No | ||
| application_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds genuinely new context beyond the annotations: that runs are system-written (i.e., not user-creatable) and an enumeration of the returned fields, which matters because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight clauses, front-loaded with the resource and its returned fields, then filters, then the read-only caveat. No filler sentences and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3-parameter, no-output-schema read tool, the description covers the returned fields and two of three filters, which is nearly enough to invoke correctly. The gaps are the unexplained request_id and the absence of any pagination or filter-combination guidance.
Complex tools with many parameters or behaviors need more documentation. 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 carry the parameter burden. It documents two of the three filters (application-id, rule-id) but leaves request_id entirely unexplained, and adds no format or combination semantics for the ones it does 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 and resource ("List workflow automation runs") and enumerates the fields surfaced by the list, so an agent knows exactly what it gets back. It does not explicitly differentiate itself from the sibling yardstick_automation_runs_retry, but the read-only framing implicitly separates it from the mutating 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?
It gives partial usage guidance by naming the two filter dimensions (application-id, rule-id), which tells the agent how to scope the call. However it offers no when-to-use/when-not framing and never points to the retry sibling for acting on a failed run, leaving alternatives to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_runs_retryTry a workflow run again after fixing setupADestructiveInspect
Try a workflow run again after fixing missing setup. Only clean refusals and active rules qualify; unknown outcomes are refused.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so safety is covered structurally. The description adds genuine behavioral detail beyond that: the refusal conditions and which run states are eligible. It does not explain the side effects or cost of a re-run, so it is not fully complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and then the eligibility constraint. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, non-idempotent mutation with annotations covering the safety profile and no output schema, the eligibility rules are useful. However, the two undocumented parameters and the lack of any note on re-run side effects leave real 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 says nothing about run_id or request_id. run_id is self-evident from its name, but request_id (plausibly an idempotency/dedupe key) is left entirely undocumented in both schema and 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 (re-run a workflow run) and its precondition (after fixing missing setup), which is clear and distinct from the read-only sibling yardstick_automation_runs_list. It stops short of naming alternatives, but the verb+resource 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?
It states the eligibility condition explicitly: only clean refusals and active rules qualify, and unknown outcomes are refused. That tells the agent when this tool will succeed versus fail, though it names no alternative action for the refused cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_starters_applyCopy automations into a jobCInspect
Copy reviewed rules into a job using chosen matches; keep unmatched rules off and existing rules intact.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| source | Yes | ||
| matches | No | ||
| request_id | No | ||
| source_digest | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-idempotent, non-destructive operation. The description adds genuinely useful behavior beyond that: unmatched rules are left off and existing rules are preserved. It omits auth/permission needs, whether the operation can partially fail, and the meaning of idempotency_key given idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the copy action and the key preservation guarantee front-loaded. There is no padding, though brevity here edges toward under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 six-parameter mutation tool with nested objects, no output schema, and zero schema descriptions, the description is too thin. An agent cannot determine from it how matches map rules, what source_digest validates, or what a successful apply returns, so it is not complete enough to call 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 six parameters, including nested matches and a hex-patterned source_digest. The description only vaguely gestures at 'chosen matches' and never explains request_id, source_digest, idempotency_key, or how the source type enum (starter vs job) is used, so it fails 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 states a specific verb (Copy) and resource (reviewed rules into a job), which is more informative than the bare tool name. However, it does not distinguish this tool from close siblings like yardstick_automation_rules_copy or yardstick_automation_starters_save_job, leaving the agent to infer which copy path applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 hints at the mechanism ('using chosen matches') but gives no explicit when-to-use, when-not-to-use, or alternative tools. With several overlapping copy/save starter siblings present, the lack of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_starters_createCreate an automation starterCInspect
Create a named organization starter from portable rule definitions.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| rules | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (not read-only, not open-world, not destructive, not idempotent), so the bar is lower. The description adds real context beyond that: the starter is organization-scoped and is built from 'portable rule definitions'. It still omits behavior on name collisions, whether the starter is reusable elsewhere, and the meaning of the idempotency_key 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?
A single front-loaded sentence with no filler; the verb and resource lead. It is efficient but so terse that terseness shades into under-specification rather than disciplined 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 write tool with four parameters, 0% schema description coverage, and no output schema, one sentence is not enough. It says nothing about request_id/idempotency_key, conflict handling, or what the created starter's identity/return looks like, so an agent calling it correctly is largely guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden and only partially meets it: 'named' maps to name and 'portable rule definitions' maps to rules. The request_id and idempotency_key parameters are undocumented in both the schema and the description, leaving half the parameters 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?
States a specific verb (Create), resource (organization starter), and input source (portable rule definitions), which clearly separates it from the read/list/delete/rename starter siblings. It does not, however, distinguish itself from automation_rules_create or automation_starters_apply/save_job, so the agent must infer which of the create-family tools it wants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no prerequisites, and no mention of the alternatives (starters_apply, starters_preview, automation_rules_create) that share this name prefix. The agent gets no signal about when creating a starter is the right move versus saving or applying one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_starters_deleteDelete an automation starterBDestructiveIdempotentInspect
Delete an organization starter while keeping existing job copies.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| starter_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds a genuinely non-annotated behavioral fact: existing job copies are preserved after deletion, which is the kind of consequence information an agent needs. It omits auth requirements and what exactly is destroyed beyond the starter 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?
A single front-loaded sentence with no waste; the resource is stated first and the retention caveat follows. It is appropriately sized for a delete action, though it leaves little room to carry the missing 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 destructive mutation with no output schema and 0% parameter coverage, the description does the minimum: it names the target and one retention guarantee. It does not cover the idempotency/request-id mechanics or the full destruction scope, so it is adequate but clearly 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% with three parameters, and the description supplies no parameter meaning at all. The required starter_id is only obliquely implied by 'starter'; request_id and idempotency_key are completely undocumented in both schema and description, so the description fails 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 states a specific verb and resource ('Delete an organization starter'), which clearly separates it from read/list/create siblings such as yardstick_automation_starters_create and _list. However, it does not explicitly contrast itself with the other mutation sibling (_apply) or the rules_delete family, so sibling differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no prerequisites, and no named alternative. The clause 'while keeping existing job copies' hints at the effect versus a fuller removal but does not tell the agent when to choose this tool over starters_apply or rules_delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_starters_listList automation startersBRead-onlyIdempotentInspect
List your organization’s saved automation starters.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description's only addition is that results are organization-scoped and 'saved' starters, which is useful but thin; it says nothing about pagination, result ordering, or volume, which matters for a list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and scope are stated immediately. Nothing is wasted or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, non-destructive list tool whose annotations already cover safety, the definition is minimally adequate. However, with no output schema the description could have characterized the return shape or the concept of a 'starter', and it leaves the undocumented request_id parameter unexplained.
Complex tools with many parameters or behaviors need more documentation. 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 single optional parameter (request_id, a correlation token) is undocumented in both schema and description. The description offers no parameter meaning to compensate, leaving the agent without an explanation of what request_id does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (automation starters) scoped to the organization's saved items. It is unambiguous about what the tool returns at a high level, but it does not name or contrast with the obvious siblings (automation_starters_create, _delete, _rename, _apply).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 list versus the other automation_starters_* tools, no prerequisite or scope conditions, and no mention of alternatives. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_starters_previewPreview copying automations into a jobBRead-onlyIdempotentInspect
Preview copying a starter or job’s rules, including step and stage matches and unmatched rules.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| source | Yes | ||
| matches | No | ||
| request_id | No | ||
| source_digest | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the full safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false). The description adds genuinely useful behavioral content by stating the response surfaces step and stage matches plus unmatched rules, but it stops short of describing the preview's shape or its bearing on a subsequent apply.
Agents need to know what a tool does to the 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; the verb and scope arrive immediately. It is efficient, though its brevity is achieved partly by omitting needed detail rather than by tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 five parameters at 0% schema coverage, nested objects, and no output schema, the description is thin: it never explains the preview payload, the effect of 'matches', or how the result feeds the apply step. An agent can guess it is safe and non-mutating from annotations but cannot confidently construct a correct call or interpret 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 0% across 5 parameters, including a nested 'source' object and a nested 'matches' object, so the description carries the full documentation burden. It only obliquely hints at the concept behind 'matches' ('step and stage matches and unmatched rules') and says nothing about job_id, source.type/id, request_id, or source_digest, leaving the required source discriminator (starter vs job) 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?
States a specific verb (preview copying) and resource (a starter's or job's rules), which is far better than a tautology. It does not, however, name or contrast itself with the obvious sibling yardstick_automation_starters_apply (or the rules_copy/preview family), so the agent must infer the preview-vs-apply relationship from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 word 'Preview' implies this is the non-mutating dry-run that precedes an apply, but the description never states when to use it versus yardstick_automation_starters_apply or which situation (template vs. existing job) calls for a preview. Usage is only implied, not instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_starters_renameRename an automation starterBDestructiveIdempotentInspect
Rename an organization starter without changing existing job copies.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| request_id | No | ||
| starter_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is covered. The description usefully adds that renaming does not propagate to existing job copies, which is real behavioral context the annotations cannot express, but it says nothing about the idempotency/request-id replay semantics implied by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action front-loaded and zero filler. Nothing could be removed without losing 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 mutation tool with zero schema description coverage and no output schema, one sentence is thin. It leaves unanswered what happens on success, how request_id/idempotency_key govern retries, and whether the rename is reversible or rejected on partial matches.
Complex tools with many parameters or behaviors need more documentation. 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 four parameters, and the description contributes nothing about any of them. Names like starter_id and name are self-explanatory, but request_id and idempotency_key carry replay/deduplication semantics that are never explained here or in 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?
States a specific verb (Rename) and resource (organization starter) and adds a scope qualifier ('without changing existing job copies') that separates it from other starter mutations. It does not name any sibling explicitly, but the verb-resource pairing is unambiguous against create/delete/apply/save_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no prerequisites, and no reference to alternatives such as yardstick_automation_starters_create or save_job. The only routing hint is the implicit contrast with operations that do copy jobs, which is a side effect of the scope note rather than deliberate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_automation_starters_save_jobSave job automations as a starterCInspect
Save a job’s automation rules as a named organization starter.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| job_id | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description only needs to add context. It adds none: it does not say whether an existing starter with the same name is overwritten, what permissions are required, or how the request_id/idempotency_key params behave.
Agents need to know what a tool does to the 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 filler; the core action and the object are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0% schema description coverage and no output schema, the single sentence is thin. It omits collision/overwrite behavior, auth needs, and the meaning of the two optional control parameters, which an agent needs before invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It only implicitly maps to job_id ('a job's') and name ('named'), and says nothing about request_id or idempotency_key, leaving half the parameters undocumented in both schema and prose.
Input schemas describe structure but not intent. Descriptions should explain 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 (save) and resource (a job's automation rules) and names the output artifact (a named organization starter), which is distinguishable from sibling automation_starters_create. However it does not explicitly contrast itself with the create/apply siblings to remove all 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?
There is no when-to-use or when-not-to-use guidance. It never explains how this differs from yardstick_automation_starters_create (build a starter from scratch) or yardstick_automation_starters_apply, leaving the agent to infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_built_in_agents_configure_bindConfirm and save built-in-agent settingsADestructiveIdempotentInspect
Bind an approved built-in-agent configure preview (same config plus approval metadata and a matching idempotency key). Writes only the built-in agent's declared settings keys and records one audit row.
| Name | Required | Description | Default |
|---|---|---|---|
| config | Yes | ||
| binding | Yes | ||
| request_id | No | ||
| idempotency_key | No | ||
| built_in_agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and idempotent, and the description goes beyond them by scoping the write ('only the built-in agent's declared settings keys') and adding the audit-row side effect. It does not detail auth or reversibility, but the main behavioral risk is addressed.
Agents need to know what a tool does to the 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 verb and object, no filler. Each sentence adds distinct information: what is bound and what side effects occur.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 bind tool with no output schema, the description conveys the core workflow pieces: an approved preview, matching config, approval metadata, and idempotency. It does not explicitly name configure_preview as the prerequisite step, but the approved-preview language makes the dependency clear enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds needed meaning: config must be the same as the preview, binding carries approval metadata, and the idempotency key must match. It does not explain request_id or every binding subfield, but those are sufficiently self-describing in 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 action ('Bind'), a specific resource ('approved built-in-agent configure preview'), and states the effect: writes only declared settings keys and an audit row. This clearly differentiates it from the sibling configure_preview (which stages but does not save) and from enable_bind.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'approved built-in-agent configure preview' implies this is the commit step after a preview, but the description never explicitly says to use it after configure_preview or contrasts it with that sibling. Usage context is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_built_in_agents_configure_previewPreview built-in-agent settings changes (nothing changed yet)AIdempotentInspect
Preview configuring a built-in agent (config is validated against the built-in agent's declared schema; enabled is a first-class key, so { enabled: false } is the off switch). Side-effect free; pass config via --body-json.
| Name | Required | Description | Default |
|---|---|---|---|
| config | Yes | ||
| request_id | No | ||
| idempotency_key | No | ||
| built_in_agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly claims 'Side-effect free', but the annotations declare readOnlyHint=false, which signals the tool may modify state. This is a direct contradiction between the description and the annotations, making it unsafe for an agent to rely on the stated side-effect 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 a single dense sentence with no filler. Purpose, validation behavior, the key 'enabled' semantics, side-effect safety, and invocation method are all front-loaded and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core usage is covered well, especially the config semantics and side-effect-free guarantee. But there is no output schema and the description never explains what the preview returns or how the agent should interpret the response, leaving a meaningful gap for a tool whose whole purpose is to produce a preview.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds real meaning to the config parameter: it is validated against the agent's declared schema, enabled is a first-class key, and { enabled: false } is the off switch. However, request_id and idempotency_key remain completely undocumented, and built_in_agent_id is only implied by the tool 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 says it previews configuring a built-in agent, names the resource, and emphasizes that nothing is changed yet. This makes the dry-run nature obvious and distinguishes it from the applying sibling (configure_bind).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this to preview and validate config before applying, with no side effects, and pass config via --body-json. It does not explicitly name the apply alternative or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_built_in_agents_enable_bindConfirm and turn on a built-in agentBDestructiveIdempotentInspect
Bind an approved built-in-agent enable preview with explicit approval metadata and a matching idempotency key. Writes the built-in agent's declared settings home and records one audit row.
| Name | Required | Description | Default |
|---|---|---|---|
| binding | Yes | ||
| request_id | No | ||
| idempotency_key | No | ||
| built_in_agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal non-readOnly and destructive behavior, and the description adds concrete side effects: it 'writes the built-in agent's declared settings home' and 'records one audit row.' It also reinforces the idempotentHint by requiring a matching idempotency key. No contradiction with annotations was 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?
Two sentences carry the action and the consequence with no filler. The primary action is front-loaded, and the audit/settings side effect is stated compactly in the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex bind operation with a 5-field nested approval object and no output schema, the description is too thin. It does not indicate where the approval metadata comes from, what a successful response looks like, or how the binding relates to the enable_preview sibling, leaving a significant inference burden on the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only vaguely references 'explicit approval metadata' and a 'matching idempotency key.' It does not explain preview_hash, approved_input_hash, resource_version_precondition, request_id, or how the two key fields relate, so the agent cannot confidently populate the nested binding object 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 states a specific action ('Bind an approved built-in-agent enable preview') and the resource affected, and the title clarifies that this turns on the agent. It is distinguishable from configure_bind by the 'enable' framing, though the term 'bind' is somewhat domain-specific and not fully unpacked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'approved built-in-agent enable preview' implies this is the follow-up to an enable_preview call and requires prior approval metadata. However, it never explicitly names the preview sibling or says when not to use this tool versus configure_bind or other alternatives, so the usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_built_in_agents_enable_previewPreview turning on a built-in agent (nothing changed yet)AIdempotentInspect
Preview enabling a built-in agent; returns the approval-required envelope stating exactly what starts happening (and what is never sent without you) plus binding fields. Side-effect free.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No | ||
| built_in_agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint false, idempotentHint true, destructiveHint false), the description explicitly says 'Side-effect free' and details what the response will contain: the approval-required envelope, what starts happening, what is never sent without you, and binding fields. This gives substantial behavioral context that annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single lean sentence that front-loads the action ('Preview enabling...') and packs in key behavioral and return-value information. There is no redundant or filler 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?
The description excels at explaining purpose and output, but with zero parameter documentation and no mention of idempotency or request_id despite the idempotentHint annotation, it leaves notable gaps. An agent could call the tool but would be unsure how to properly supply parameters, so it is only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the parameters (built_in_agent_id, request_id, idempotency_key). The agent is left without any semantic guidance on which IDs to use or how idempotency works, making this a major gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Preview enabling a built-in agent' – a specific verb and resource – and clarifies 'nothing changed yet', making it distinct from the sibling enable_bind tool. The 'Side-effect free' note reinforces that this is a preview, not an actual mutation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this is a preview action and is safe to invoke without side effects, implying it should be used before the actual enable operation. However, it does not explicitly name the alternative bind tool or give an explicit when-not-to-use condition, so it falls short of full explicitness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_built_in_agents_listList built-in agentsARead-onlyIdempotentInspect
List the built-in-agent catalog with each built-in agent's current status, explicit defaults or disabled state, and latest work summary.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds value by specifying exactly what data the list contains (status, defaults/disabled state, latest work summary), going beyond the minimal 'list' expectation.
Agents need to know what a tool does to the 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 wastes no words. It states the core action immediately and lists the output details 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 read-only list operation with no required parameters and no output schema, the description provides sufficient detail about the response content. It lacks mention of pagination or sorting, but these are unlikely to be needed for a catalog listing, making it reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no descriptions in the schema) and the description does not mention the optional request_id parameter at all. Since the parameter is optional, the agent could omit it, but the description fails to explain its purpose or whether it's needed for tracing or filtering, leaving the agent without 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 uses a specific verb ('List') and resource ('built-in-agent catalog') and names three concrete output elements (current status, defaults/disabled state, latest work summary). This clearly distinguishes it from read (single agent) and mutation tools like configure/enable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 its use for getting an overview of all built-in agents, but it doesn't explicitly contrast with alternatives like yardstick_built_in_agents_read for a single agent. No when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_built_in_agents_readRead a built-in agentARead-onlyIdempotentInspect
Read one built-in agent by catalog id (for example scorecard-chaser, nightly-screening, or interview-kit-prep): what it does, what it never does without you, current status, and latest work summary.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| built_in_agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive safety. The description adds meaningful behavioral context by stating what the returned data will include, especially 'what it never does without you,' which conveys an important boundary of the agent's autonomous behavior. This goes beyond a bare 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?
A single, well-structured sentence that front-loads the primary action and identifier, then lists the returned content. No wasted words or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the expected return content (purpose, safety boundaries, status, work summary). It does not explain the optional request_id parameter, but that is likely a correlation identifier and not central to calling the tool. Overall, an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It explains built_in_agent_id well by giving a format ('catalog id') and examples, but it does not mention request_id at all. This leaves one of the two parameters semantically 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 specific verb ('Read'), a specific resource ('built-in agent'), and the key lookup mechanism ('by catalog id'), with concrete examples. It clearly distinguishes this single-item read tool from the sibling list tool by emphasizing 'one' and 'by catalog 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?
The description gives clear context: use this when you need details about a single built-in agent identified by catalog id. It does not explicitly name alternatives or exclusion conditions, but 'one' versus the implied list tool is enough for an agent to infer when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_built_in_agents_runsList built-in-agent run historyARead-onlyIdempotentInspect
List the organization's built-in-agent run history as a flat work report. Nightly screening reports scheduled-work counts and held, released, or invalidated review outputs; interview-kit preparation reports the scheduled week and count-only results. It never includes candidate, draft, recipient, kit, or provider details. delivery_unknown is not delivered and is not retried. Filterable by built-in-agent id. Read-only and mode-scoped.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| built_in_agent_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond the read-only, idempotent, and non-destructive annotations: the report is flat, excludes candidate/draft/recipient/kit/provider data, and delivery_unknown is never delivered and never retried. It also discloses that results are mode-scoped, which is not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient: each sentence adds information about output shape, per-mode contents, exclusions, delivery_unknown semantics, filtering, and mode scope. There is no redundancy with the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list with two optional parameters, the description covers what is returned and how to filter by built-in-agent id. The main gaps are the undocumented request_id parameter and the absence of any output field or pagination detail, but the essential invocation context 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?
The description explicitly maps built_in_agent_id to filtering, but it never explains request_id, its purpose, or whether it is required. Since the schema provides no parameter descriptions and the description covers only one of two parameters, the agent is left with incomplete guidance for 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 opens with a specific verb and resource: 'List the organization's built-in-agent run history' and clarifies the result is a flat work report. It also identifies the two built-in-agent modes covered, which distinguishes this tool from sibling list tools like yardstick_built_in_agents_list and yardstick_automation_runs_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context for when this tool is relevant, such as nightly screening reports and interview-kit preparation. However, it never names alternative tools or states when not to use this tool, so an agent must infer routing from sibling tool names rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_decision_brief_readRead a hiring decision briefCRead-onlyIdempotentInspect
Read the decision brief for an application.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the read action—no mention of authentication, rate limits, or what the returned brief contains. With no additional disclosure, this dimension scores low.
Agents need to know what a tool does to the 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. While it is essentially a restatement of the title, it is concise and easy to parse, earning a slightly above-average score for 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 read tool with no output schema, the description should provide enough context for an agent to know what a decision brief is and how it differs from an application read. It does neither, nor does it clarify the role of request_id. The definition is insufficient 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%, so the description must compensate. It only implies that application_id is the key via 'for an application,' but it leaves request_id completely unexplained. Two parameters exist, and the description provides no meaningful detail about either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('read') and resource ('decision brief') tied to an application, making the core purpose clear. However, it does not explicitly differentiate itself from siblings like yardstick_applications_read or yardstick_decision_brief_regenerate, so it misses the full 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 guidance on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_decision_brief_regenerateRegenerate a hiring decision briefCDestructiveInspect
Regenerate a decision brief for an application with idempotency metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| application_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description's 'Regenerate' aligns with mutation. The phrase 'with idempotency metadata' adds a small amount of behavioral context beyond the annotations, but the description does not disclose what happens to the existing decision brief, whether the regeneration is reversible, or what side effects may 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 concise sentence with no filler, and the core action is front-loaded. It could earn a higher score if it used the saved space to add more practical guidance, but as written it is appropriately brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no output schema and no parameter-level documentation, the description is too thin. It does not explain the regeneration behavior, overwrite semantics, retry/idempotency usage, or expected outcome, leaving the agent with insufficient context to invoke 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, but it only broadly indicates that the tool applies to 'an application' and mentions 'idempotency metadata'. It does not explain the distinct roles of request_id versus idempotency_key, nor why only application_id 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 ('Regenerate') and resource ('a decision brief for an application'), which makes the core action clear. It also distinguishes implicitly from the sibling yardstick_decision_brief_read by using 'regenerate' rather than 'read', though it does not explicitly contrast 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 no guidance about when to use this tool versus alternatives such as yardstick_decision_brief_read. It does not state conditions, prerequisites, or exclusions, leaving the agent to infer the appropriate context 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.
yardstick_departments_createCreate a department (confirm in Yardstick)CInspect
Create a Department through the public Yardstick API.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| slug | No | ||
| request_id | No | ||
| description | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries full responsibility for behavioral disclosure. It only says 'create,' implying mutation, but fails to mention any side effects, confirmation requirements (as hinted by the title), idempotency behavior (despite the idempotency_key parameter), or permissions. The description is minimal and does not add meaningful behavioral context beyond the fact of creation.
Agents need to know what a tool does to the 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. It front-loads the purpose and is easy to parse. However, it is so sparse that it borders on under-specification, but given its brevity and clarity of action, it earns a 4 for conciseness and 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?
Given 5 parameters, no output schema, and no annotations, the description is woefully incomplete. It does not explain any parameter semantics, does not mention confirmation steps, idempotency, or any prerequisites. An agent would have no idea how to properly invoke this tool beyond knowing the resource. This is a critical gap 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 0%, meaning the schema itself provides no parameter explanations. The description does not compensate at all—it says nothing about what each parameter means, which ones are required (only name is required but not stated), or how to use idempotency_key or request_id. This is a severe gap for a tool with 5 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 clear verb and resource: 'Create a Department through the public Yardstick API.' It is unambiguous about what the tool does and distinguishes it from sibling tools like yardstick_departments_update by naming the create action. However, it doesn't clarify the 'confirm in Yardstick' aspect from the title, so it loses a point for not differentiating the specific flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of prerequisites, confirmation steps, or scenarios where create should be preferred over update or list. The description is purely declarative with no contextual routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_departments_invitations_createInvite someone to a department (confirm in Yardstick)CInspect
Create a Department-scoped invitation without returning token material.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| role | Yes | ||
| Yes | |||
| full_name | No | ||
| request_id | No | ||
| department_id | Yes | ||
| idempotency_key | No | ||
| expires_in_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false, the description correctly implies a mutation, but it only discloses one behavioral aspect (not returning token material). It does not mention side effects like sending an email or requiring confirmation (which the title hints at), nor does it provide context about idempotency or error handling. Given the sparse annotations, the description carries the burden and fails to adequately disclose 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 a single, concise sentence with no filler words. It front-loads the action and includes a relevant behavioral note. However, it may be slightly too terse given the complexity of the tool, but as far as conciseness goes, it 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 8 parameters, 3 required, no schema descriptions, and no output schema, this description is severely incomplete. It does not explain required inputs, the role enum, expiration behavior, idempotency, or what happens after creation. An agent cannot confidently invoke this tool correctly based on the provided information.
Complex tools with many parameters or behaviors need more documentation. 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 8 parameters, all with zero description coverage, and the description mentions none of them. It does not clarify the meaning of department_id, email, role, idempotency_key, expires_in_hours, etc. The description provides no compensation for the missing schema descriptions, leaving the agent to guess 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 clearly states the action ('Create'), the resource ('invitation'), and the scope ('Department-scoped'). It also adds a specific detail about behavior ('without returning token material'), which makes the purpose unambiguous and distinguishes it from other invitation-related tools like listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or other tools (e.g., the sibling list tool). The intended usage is only implied by the name and the word 'Create'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_departments_invitations_listList department invitationsCRead-onlyIdempotentInspect
List redacted Department invitation views.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| department_id | Yes | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is a safe, read-only, idempotent operation, so the description does not need to restate those traits. It adds a little extra context by saying the views are 'redacted,' but it does not explain what is redacted, how pagination behaves, or what the response shape 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, front-loaded sentence with no filler or repetition. It is concise, though it may be slightly too terse to be fully informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no output schema, and 0% schema description coverage, the description is far too minimal to be complete. It communicates only the basic operation, leaving pagination semantics, the required department parameter, and the meaning of 'redacted' views unexplained.
Complex tools with many parameters or behaviors need more documentation. 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. Required department_id, limit, starting_after, and request_id are left entirely undocumented, so the description fails to compensate for the schema's lack of explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a clear resource ('Department invitation views'), and the word 'redacted' adds useful scope about the output. It does not explicitly differentiate from sibling tools, but the naming convention and the absence of other invitation list tools make the purpose reasonably 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, no prerequisites, and no exclusions. An agent must infer from the name alone that this is the right call for listing department invitations, which is not explicit in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_departments_listList departmentsARead-onlyIdempotentInspect
List Departments visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the scoping detail ('visible to the current principal'), which is useful behavioral context beyond the annotations. However, it doesn't disclose pagination behavior, ordering, or whether the result includes nested members, which would be relevant for a list 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 wasted words. It front-loads the verb and resource, and the scoping qualifier is concise. 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 list operation with read-only annotations, the description is mostly adequate. However, with no output schema and no parameter descriptions, an agent might not know what the response looks like or how to use limit/starting_after for pagination. The description doesn't mention pagination or response format, which are common gaps for list tools. Given the simplicity of the tool, this is a minor gap, but it prevents a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries no parameter information. The schema itself defines three parameters (limit, request_id, starting_after) with basic types and constraints but no descriptions. The tool description doesn't explain what these parameters mean or how they relate to the listing behavior. Since the schema provides minimal semantics and the description adds nothing about parameters, a 3 is appropriate – the parameters are simple and self-explanatory to some degree, but the description doesn't compensate for the 0% 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 'List Departments visible to the current principal' clearly states the verb (list) and resource (departments), and adds a scoping qualifier ('visible to the current principal') that distinguishes it from other department-related tools. It doesn't explicitly differentiate from sibling tools like yardstick_departments_read, but the verb+resource combination is clear 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?
The description implies usage context: it lists departments visible to the current principal, which suggests it's the appropriate tool for enumerating departments the caller can access. However, it doesn't explicitly state when to use this over alternatives like yardstick_departments_read or yardstick_departments_create, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_departments_members_addAdd a department member (confirm in Yardstick)CIdempotentInspect
Add an existing person to a Department.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| request_id | No | ||
| department_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only notes that the person must already exist. It does not explain the 'confirm in Yardstick' behavior suggested by the title, nor what happens on duplicate membership, what side effects occur, or what the response looks like. Annotations indicate idempotent and non-destructive, but the description adds little behavioral context beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, economical sentence with no filler and is appropriately front-loaded. It is concise, but it omits important context carried by the title, so it is not as complete as it could be while still being 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 four-parameter tool with no output schema and no parameter descriptions, this description is too thin. It clarifies the two required identity parameters at a basic level but leaves the optional request_id and idempotency_key unexplained, and the title's confirmation workflow is never addressed. An agent has enough to attempt a basic call but not to use the tool fully and 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. It weakly maps 'person' to person_id and 'Department' to department_id, but says nothing about request_id or idempotency_key. An agent cannot understand the meaning or purpose of two of the four 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 the action and target: 'Add an existing person to a Department.' This distinguishes it from related member operations like remove and set_lead, though it does not explicitly name a sibling for comparison. The title's parenthetical 'confirm in Yardstick' introduces an ambiguous workflow element that the description does not clarify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 departments_members_remove, departments_members_list, or talent_pool_members_add. There is no mention of prerequisites, such as verifying the person exists or whether the department must already be set up. The intended use is only implied by the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_departments_members_listList department membersCRead-onlyIdempotentInspect
List Department members for an authorized Department.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| department_id | Yes | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description doesn't need to restate safety. It adds only the authorization qualifier and does not disclose pagination behavior, response contents, or ordering. Minimal added value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler, and the action is front-loaded. It is concise, though it is sparse enough that it adds little beyond the title. Conciseness itself is still good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a list tool with no output schema and 0% parameter coverage, the description should explain pagination, authorization requirements, and what is returned. It only gives a one-line purpose, leaving the agent to guess how to use limit and starting_after and what the response shape is. This is incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 4 parameters (department_id, limit, starting_after, request_id) with 0% schema description coverage, and the description explains none of them. It doesn't say what limit or starting_after control or what request_id is for. The description completely fails to compensate for the schema's 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 verb ('List') and resource ('Department members'), and the qualifier 'for an authorized Department' narrows scope. It reads distinctly from siblings like yardstick_departments_members_add or yardstick_departments_list, though it doesn't explicitly name an alternative. This is clear but not actively differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-not-to-use guidance is given. The phrase 'authorized Department' implies a prerequisite, but there is no discussion of alternatives or conditions for choosing this list tool over other department member tools. Usage is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_departments_members_removeRemove a department member (confirm in Yardstick)CDestructiveIdempotentInspect
Remove a Department member, optionally with a replacement lead.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| request_id | No | ||
| department_id | Yes | ||
| idempotency_key | No | ||
| replacement_lead_person_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, and the description does not contradict them. The description adds the nuance that removal can optionally install a replacement lead, but it does not disclose consequences such as whether removing the current lead requires a replacement or whether the '(confirm in Yardstick)' title implies a confirmation step.
Agents need to know what a tool does to the 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 and front-loads the primary action. It is concise, though slightly under-specified for a five-parameter destructive 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 destructive call with five parameters, no output schema, and 0% parameter documentation, a single sentence leaves important gaps: no mention of confirmation semantics, what happens to leads, when idempotency_key or request_id are needed, or what a successful removal returns. The annotations cover idempotency and destructiveness, but the description alone is not 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?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It clarifies replacement_lead_person_id as an optional replacement lead, but it does not explain the role of request_id or idempotency_key and only restates the obvious meaning of department_id and person_id, so it 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 uses a specific verb ('Remove') and resource ('Department member'), and adds the optional replacement-lead behavior, making the core action clear. It does not explicitly contrast with sibling tools like yardstick_departments_members_add or yardstick_departments_members_set_lead, but the name and action together are 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 provided about when to use this tool versus alternatives such as yardstick_departments_members_set_lead or yardstick_talent_pool_members_remove. The description states what the tool does but gives no conditions, prerequisites, or exclusions, so an agent must infer applicability 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.
yardstick_departments_members_set_leadSet the department lead (confirm in Yardstick)CDestructiveIdempotentInspect
Set one Department member as lead.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | lead | |
| person_id | Yes | ||
| request_id | No | ||
| department_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive and idempotent behavior. The description adds only 'one member,' which is essentially the core action and not meaningful behavioral context. It doesn't explain what happens to a previous lead, whether confirmation is required despite the title's 'confirm in Yardstick,' 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, short, front-loaded sentence with no filler. It is efficient in form, though the brevity comes at the cost of missing important contextual 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?
For a mutation tool with no output schema, no parameter descriptions, and multiple optional parameters, this description is incomplete. It fails to mention the fixed role value, idempotency handling, or confirmation behavior, so an agent cannot confidently invoke the tool correctly in all 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, but it explains none of the five parameters. It doesn't clarify department_id, person_id, role's fixed 'lead' value, request_id, or idempotency_key, leaving the agent to infer their meaning 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?
States a clear action ('Set one Department member as lead') with a specific resource and role. It is unambiguous enough to distinguish from sibling member tools like add/remove, but it does not explicitly name those siblings or call out the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 departments_members_add, departments_members_remove, or departments_members_list. It also fails to mention whether a department lead already exists, whether confirmation is required, or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_departments_readRead a departmentARead-onlyIdempotentInspect
Read one Department by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| department_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds the useful identifier nuance of 'public id' and singular result, but does not mention response shape, not-found behavior, or any other runtime 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 a single, tight sentence with no filler. The core operation and key detail are front-loaded and every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with rich safety annotations, the description captures the essential invocation details. However, with no output schema and no mention of return or error behavior, an agent has some ambiguity about what to expect from the 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?
With 0% schema description coverage, the description carries the parameter burden. It usefully clarifies that department_id is the public identifier lookup key, but the optional request_id is left entirely unexplained, creating a partial 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 names the exact operation ('Read'), the resource ('Department'), and the lookup key ('by public id'). It clearly distinguishes this from departments_list and departments_update without needing to inspect 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?
'Read one Department by public id' gives a clear context: use this when you need a single department and have its public identifier. It does not explicitly name alternatives or exclusions, but the singular 'one' and the sibling department tools make the appropriate usage evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_departments_updateUpdate a department (confirm in Yardstick)CDestructiveIdempotentInspect
Update one Department with schema-bound public API fields.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| slug | No | ||
| request_id | No | ||
| description | No | ||
| department_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and idempotent behavior, and the description adds no extra behavioral context. It does not explain side effects, reversibility, or the 'confirm' workflow hinted at in the title, leaving the agent without critical operational insight.
Agents need to know what a tool does to the 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 the core action, but 'schema-bound public API fields' is low-value filler that could be removed. It is not overly verbose, but it lacks meaningful content that would justify 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 destructive update tool with six parameters and no output schema, the description is far too sparse. It does not clarify the confirmation workflow hinted at in the title, nor any preconditions, side effects, or expected results, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the six parameters. The phrase 'schema-bound public API fields' is unhelpful filler; the agent must rely solely on parameter names in the schema, which is insufficient 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 ('Update one Department'), which distinguishes it from create/list/read siblings. However, the phrase 'schema-bound public API fields' is vague and adds no specific detail about what fields are updatable, though the schema lists 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 this tool versus alternatives like create or other department tools. The verb 'Update' implies modifying an existing department, but no prerequisites, exclusions, or alternative conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_automation_settings_readRead email automation settingsCRead-onlyIdempotentInspect
Read candidate email automation settings.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description matches annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) and adds no contradictory claims. However, it adds no behavioral context beyond what the annotations already establish, so it provides only baseline adequacy.
Agents need to know what a tool does to the 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 and the main verb is front-loaded. It is concise, though it is concise to the point of omitting useful 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?
There is no output schema, no explanation of return values, no parameter semantics, and no distinction from closely related email-settings read tools. An agent cannot confidently infer what will be returned or how request_id affects 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 0%, and the only parameter, request_id, is optional and undocumented. The description never mentions request_id or explains when or why an agent would supply it, so the agent gets no assistance beyond the bare 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 uses a specific verb ('Read') and identifies the resource as 'candidate email automation settings.' It is clearly a read operation and is distinguishable from the sibling update tool by the read/write split, though it does not explicitly name or contrast 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 the update tool or other email settings reads like yardstick_email_sender_settings_read. The read-only nature is implied by the verb but no exclusions or alternative conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_automation_settings_updateUpdate email automation settingsCDestructiveIdempotentInspect
Update candidate email automation settings.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds no behavioral context—it does not explain that updates may overwrite existing settings, nor does it mention the idempotency_key's role. The description carries no extra value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single generic sentence that is terse but not concise in a helpful way—it omits essential information. It is under-specified rather than 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?
For a mutation tool with destructiveHint=true and no output schema, the description is severely incomplete. It lacks any explanation of the settings being updated, how to provide them, or what the request_id and idempotency_key are for. An agent cannot correctly invoke 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%, and the description does not mention either parameter (request_id, idempotency_key). It fails to explain what these parameters do or how to specify the actual settings to update, leaving the agent without critical usage 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 states a clear verb (update) and resource (candidate email automation settings), which is specific and distinguishes it from the read counterpart. It does not explicitly name sibling alternatives, but the verb and resource make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. While the read sibling is obvious, the description provides no context about when updates are needed, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_drafts_discardDiscard a candidate email draftCDestructiveIdempotentInspect
Discard a pending candidate email draft without provider mutation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds minimal context: it says 'without provider mutation', which is somewhat counterintuitive given destructiveHint. There is no mention of what happens to the draft, whether it is recoverable, or what the response is. The description does not contradict annotations but does little to explain the behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the primary action and resource. However, it is too brief given the lack of parameter documentation, but as far as structure, it is adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no enums, and annotations carry only basic hints. The description does not explain the state of the draft, the effect of discarding, or the idempotency implications. Given the complexity of a destructive action with idempotency keys, more context is 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?
Schema description coverage is 0%, and the description does not explain any of the three parameters. The id, request_id, and idempotency_key are defined only by their names and types, which is insufficient. The description should clarify that id identifies the draft and that request_id and idempotency_key are optional for idempotency, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (discard), a specific resource (candidate email draft), and the state (pending). It distinguishes from siblings like send, update, and list by focusing on discarding. It does not explicitly mention the alternative tools for discarding (e.g., a delete or discard action) but the verb 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 implies usage when discarding a pending draft, but provides no when-to-use guidance such as prerequisites (e.g., draft must be pending, not sent) or alternatives (e.g., use update to modify instead). There is no mention of when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_drafts_historyRead candidate email draft historyBRead-onlyIdempotentInspect
Read candidate email draft history and provenance.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, non-destructive, idempotent behavior, so the bar is lower. The description adds only the vague 'history and provenance' notion, but does not disclose what the returned history contains, how far back it goes, or how versions are represented.
Agents need to know what a tool does to the 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, front-loaded sentence with no filler. It is concise, though the brevity comes at the cost of parameter and usage 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 two parameters and no output schema, the description is too thin. It omits parameter semantics, return format, and any guidance distinguishing it from related email draft tools, so an agent may not call it correctly without external 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 description coverage is 0%, and the description provides no parameter guidance. It does not clarify whether 'id' is a draft identifier or candidate identifier, nor what the optional 'request_id' means or how it affects 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 states a specific action ('Read') and resource ('candidate email draft history and provenance'), making the tool's general purpose clear. It does not explicitly differentiate itself from sibling tools like yardstick_email_drafts_read or yardstick_email_drafts_list, but the 'history' scope is enough to distinguish it at a basic 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 word 'history' implies when this tool is appropriate: when an agent needs historical versions or provenance rather than the current draft. However, the description does not explicitly name alternatives or state when not to use this tool, leaving the routing decision mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_drafts_listList candidate email draftsBRead-onlyIdempotentInspect
List candidate email drafts with optional status and email-type filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| email_type | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds no behavioral context beyond that, such as whether filters are combined with AND/OR, default ordering, or pagination behavior. Since annotations carry the safety burden and the description does not contradict them, a 3 is appropriate – it adds minimal but not insufficient value.
Agents need to know what a tool does to the 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 action and resource, then mentions the optional filters. There is zero waste; every word contributes to the meaning. It is appropriately concise for a simple listing 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 absence of an output schema and 0% schema coverage, the description leaves critical details unstated: pagination via starting_after, limit behavior, what 'candidate' means in this domain, and the return format. The tool is not fully self-contained; an agent would need additional context or documentation to use it correctly beyond a basic list 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?
With 0% schema description coverage, the description must compensate for all five parameters. It only mentions 'status' and 'email-type' filters, leaving 'limit', 'starting_after', and 'request_id' undocumented. The description does not explain pagination, default limits, or the role of request_id, so an agent cannot correctly invoke the tool with full parameter awareness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'candidate email drafts'. It distinguishes from sibling tools by the verb 'list' versus 'send', 'update', 'preview', etc., though it does not explicitly name alternatives. The purpose is unambiguous and specific enough for an agent to understand 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 provides no guidance on when to use this tool versus other email draft tools (e.g., read, preview, send). It does not mention any context like 'use this to see all drafts' or 'when you need a collection of drafts'. There is no mention of alternatives or when not to use it, leaving the agent to infer usage from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_drafts_previewPreview a candidate email draftARead-onlyIdempotentInspect
Read rendered preview content for a candidate email draft.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructive false, so the safety profile is covered. The description adds that the operation returns 'rendered preview content' rather than raw draft metadata, but it doesn't explain response format or error behavior. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single eight-word sentence with no filler. The main action and object are front-loaded rank. It sacrifices detail for brevity but remains an efficient 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?
For a simple read-only tool, annotations already handle safety, but the description omits parameter purposes and any return/rendering details. Without an output schema, more guidance on what the preview content consists of 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?
Schema description coverage is 0%, and the description does not explain the meaning of `id` or `request_id`. While `id` is somewhat self-evident, `request_id` is ambiguous and the description provides no clarification for either 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 the specific verb 'Read' with the object 'rendered preview content,' identifying the exact resource as 'candidate email draft.' This clearly distinguishes it from siblings like yardstick_email_drafts_read and other preview tools by emphasizing rendered output and candidate-specific 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?
No explicit when-to-use or when-not-to-use guidance is given. The purpose implies it is for previewing a draft before sending, but no alternatives are named or conditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_drafts_readRead a candidate email draftBRead-onlyIdempotentInspect
Read a redacted candidate email draft.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds the 'redacted' detail, signaling that returned content is masked. It does not explain what is redacted or how request_id affects the response, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the 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 is efficient and front-loads the key operation and the redaction trait. It is appropriately short, though it adds only the word 'redacted' beyond the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with strong safety annotations, this is minimally adequate: an agent can infer that id is the draft ID and that the call is safe. But without parameter semantics, sibling differentiation, or output formatting, it leaves meaningful gaps for an agent deciding between read, preview, and history.
Complex tools with many parameters or behaviors need more documentation. 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's parameters are bare (id, request_id) with 0% description coverage, and the description does not clarify what these identify or how they relate. Little semantic value is added beyond the 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 verb 'Read' and resource 'redacted candidate email draft' specify the operation clearly. However, it does not explicitly distinguish itself from sibling tools like email_drafts_preview or email_drafts_history, so some inference is required.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 rather than email_drafts_list, email_drafts_preview, or email_drafts_history. No exclusions, prerequisites, 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.
yardstick_email_drafts_sendSend a candidate emailADestructiveIdempotentInspect
Send a pending candidate email draft with replay protection, or reclaim a never-delivered draft and send it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| request_id | No | ||
| idempotency_key | No | ||
| reclaim_not_delivered | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as destructive and idempotent; the description adds value by explaining the replay-protection behavior and the reclaim path for never-delivered drafts. This is consistent with the annotations and clarifies what 'send' entails without contradicting the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single two-clause sentence states the core action and the two supported modes with no filler. The main action is front-loaded, and each clause 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?
The description explains the key behavioral choices (send vs. reclaim) and the replay-protection safeguard, which is enough to select the tool. However, it does not explain the request_id parameter, possible error/return conditions, or any precondition such as a configured sender, and there is no output schema to fill 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?
With 0% schema description coverage, the description carries most of the semantic load. 'Replay protection' and 'reclaim a never-delivered draft' clarify the likely purposes of idempotency_key and reclaim_not_delivered, but the description never mentions request_id and leaves the id/draft relationship implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Send a pending candidate email draft,' giving a specific verb and resource, and outlines a distinct reclaim mode. This clearly separates it from sibling draft tools like yardstick_email_drafts_read or _discard, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 specifies when to use the tool: for pending drafts in the normal path, or for never-delivered drafts via reclaim. It does not explicitly name sibling alternatives or state when not to use it, so it falls 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.
yardstick_email_drafts_updateEdit a candidate email draftADestructiveIdempotentInspect
Save mutable candidate email draft fields or set/clear a validated sender override.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and not read-only. The description adds useful nuance by saying only mutable fields are saved and that sender overrides are validated, but it does not explain side effects, whether fields are cleared when omitted, or other consequences beyond the annotation 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, front-loaded sentence with no filler. It efficiently communicates the core update operation and the secondary override behavior without wasting 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?
With no output schema and no parameter documentation, the description leaves out critical invocation details: which fields can be edited, what the override field is called, and what the response contains. The tool's destructive and idempotent nature is covered by annotations, but the operational payload contract is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the schema only exposes id, request_id, and idempotency_key. The description mentions 'mutable candidate email draft fields' and a 'sender override' but does not name or explain the payload keys, making it difficult for an agent to construct a correct request. It provides only high-level intent, not operational parameter 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 tool updates/saves mutable candidate email draft fields and can set or clear a validated sender override. This distinguishes it from siblings like email_drafts_read, email_drafts_send, and email_drafts_discard, even without naming 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 description implies usage: it is for editing an existing draft, not for sending, discarding, listing, or reading. However, it does not explicitly state when to prefer this over alternatives or mention exclusions, so 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.
yardstick_email_sender_connections_listList email sender connectionsBRead-onlyIdempotentInspect
List redacted sender provider connection state.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is read-only, idempotent, and non-destructive. The description adds one useful behavioral detail: the returned connection state is redacted. It does not go further to describe pagination, filtering, or what 'state' includes, so this is solid but not exceptional.
Agents need to know what a tool does to the 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 entire description is one compact, front-loaded sentence with no filler. It is appropriately terse, though it leaves important context such as request_id behavior unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with rich annotations and only one optional parameter, the tool is mostly usable as-is. However, the absence of any return-shape hints or guidance on what a 'connection state' contains leaves minor but real gaps, and sibling tools are not distinguished.
Complex tools with many parameters or behaviors need more documentation. 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 no description for request_id and the tool description never mentions it. With 0% schema coverage, the description should compensate but does not add any parameter meaning; the only mitigating factor is that the parameter is optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 list operation ('List') over a distinct resource ('sender provider connection state') and adds that the data is redacted. This is clear enough to identify the tool's function, though it does not explicitly name 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?
No guidance is given for when to choose this over nearby email-related tools such as email_sender_defaults_list or email_sender_settings_read. The optional request_id is not explained, and no exclusions, prerequisites, or alternative conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_sender_defaults_listList default email sendersBRead-onlyIdempotentInspect
List candidate email sender defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so there is no safety contradiction. The description adds the 'candidate defaults' scoping, but does not disclose return shape or whether the optional request_id affects results; this is acceptable but not high-value 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?
One short sentence with no filler or repetition of the schema; the action is front-loaded. It could earn a 5 if it used the saved space to clarify 'candidate' or request_id.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read-only list with no required parameters and robust hints, so the basic call is fully invokable from the description. However, without an output schema the description does not state what the returned defaults look like or clarify the optional request_id, leaving notable but non-blocking 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 makes no mention of request_id, so the sole parameter's purpose (correlation ID? filter?) is undocumented. The parameter is optional, which softens the impact, but the description does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete verb and resource ('List ... email sender defaults') and is distinguishable from the related siblings (email_sender_connections_list, email_sender_defaults_set, email_sender_settings_read) by focusing on defaults. It could be sharper by explaining what 'candidate' means, but the core action 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?
No guidance is given on when to use this tool versus alternatives. The sibling list includes email_sender_connections_list and email_sender_defaults_set, but the description does not explain the relationship or exclusions, 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.
yardstick_email_sender_defaults_setSet the default sender for an email typeCDestructiveIdempotentInspect
Set the default sender policy for a candidate email type.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No | ||
| default_sender_type | Yes | ||
| org_shared_sender_identity_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the agent knows the operation is a mutation. The description adds no behavioral context beyond the word 'Set' – it doesn't explain that this overwrites existing defaults, what happens to prior settings, whether permission is required, or the effect of leaving org_shared_sender_identity_id null. No contradiction exists, but the description fails to enhance the annotation-provided safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. Every word contributes to the core purpose, making it maximally concise and easy to parse at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 this is a mutation tool with no output schema, five parameters, and a destructive annotation, the description is insufficiently complete. It fails to address usage context, parameter interplay, side effects, or what happens after invocation, leaving the agent with significant ambiguity despite the annotations and enum schemas.
Complex tools with many parameters or behaviors need more documentation. 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 or explain any parameters. The dependencies between default_sender_type and org_shared_sender_identity_id, the meaning of enum values like 'org_shared' vs 'owner', and the relevance of request_id and idempotency_key are all left undocumented. The description does not compensate for the schema's lack of semantic 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 clearly identifies a specific action ('Set') and a distinct resource ('default sender policy for a candidate email type'), making the tool's core function evident. However, it does not explicitly differentiate this tool from its sibling 'yardstick_email_sender_defaults_list' or other email-related tools, relying on the verb/resource contrast alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, when not to use it, or any prerequisites such as needing an existing sender connection. The sibling tools like 'yardstick_email_sender_defaults_list' and 'yardstick_email_sender_settings_read' are not referenced, leaving the selection decision entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_sender_settings_readRead email sender settingsBRead-onlyIdempotentInspect
Read redacted email sender settings with sanitized queue diagnostics.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description's job is lighter. It adds value by promising redacted settings and sanitized queue diagnostics, telling the agent that sensitive values will be masked. This is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. The redaction and sanitization qualifiers are front-loaded and add meaningful information without 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?
Annotations cover the safety profile and the description conveys the high-level return value, so the tool is mostly usable. It falls short by not explaining the optional request_id or the shape of queue diagnostics, and with no output schema those details are absent.
Complex tools with many parameters or behaviors need more documentation. 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 request_id, the only parameter. The parameter name hints that it identifies a request, but its role relative to settings and queue diagnostics is left unexplained, so the description does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('email sender settings'), and adds redaction/sanitization detail that characterizes the output. It is not a tautology, though it does not explicitly distinguish this tool from nearby siblings like email_sender_defaults_list or email_sender_connections_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 on when to use this tool versus alternatives such as email_sender_defaults_list, email_sender_connections_list, or email_automation_settings_read. The read-only usage is implied but no exclusions or alternatives are provided, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_createCreate a custom emailCInspect
create an email. Use email_type for a built-in type or custom template key.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is covered. The description adds essentially nothing behavioral: it does not say what is created or returned, whether the new template starts as a draft, or how request_id/idempotency_key affect behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and the primary parameter hint. No wasted words, though the lowercase fragment opener and the incomplete coverage keep it from being exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3-parameter creation tool with no output schema and no schema descriptions, the definition is too thin. It omits the return shape, the template lifecycle state on creation, and two of three parameters, leaving real gaps an agent would need filled.
Complex tools with many parameters or behaviors need more documentation. 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 carry the load. It partially explains email_type (built-in type vs custom template key), which is genuinely useful, but leaves request_id and idempotency_key entirely undescribed, and does not explain the email_type pattern constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'create' is present, but the resource is described as 'an email' while the tool name and title point at an email *template* ('Create a custom email'). This mismatch means an agent cannot cleanly distinguish it from other create operations, and it does not differentiate from siblings like duplicate or publish. Purpose is inferable but vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only guidance is about parameter usage ('Use email_type for a built-in type or custom template key'). There is no when-to-use-this-vs-alternatives guidance despite many related siblings (duplicate, preview, publish, validate), and no prerequisites or when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_deleteDelete a custom emailCDestructiveInspect
delete an email. Use email_type for a built-in type or custom template key.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered structurally. The description adds nothing beyond implying built-ins can be deleted, with no note on irreversibility, permissions, or whether reset is the intended path for built-in 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?
Two short sentences with the action front-loaded and no filler, but the brevity comes at the cost of under-specification rather than genuine economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation with no output schema and entirely undocumented parameters, the description should clarify irreversibility, built-in vs custom behavior, and the two auxiliary parameters. It does not, leaving the agent materially under-informed before calling a deletion.
Complex tools with many parameters or behaviors need more documentation. 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 3 parameters, and the description only partially compensates: it explains that email_type takes a built-in type or a custom template key, but says nothing about request_id or idempotency_key, whose purpose is entirely 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 verb 'delete' is paired with the vague resource 'an email' rather than 'email template', so an agent can't immediately tell whether this removes a template definition or a sent message. The title 'Delete a custom email' and the sibling set (email_templates_reset, rollback, duplicate) leave the scope ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 how to populate email_type but never says when to choose delete over the sibling alternatives, notably email_templates_reset for built-in types or rollback for customizations. No prerequisites or when-not guidance are given for a destructive operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_duplicateDuplicate an emailCInspect
duplicate an email. Use email_type for a built-in type or custom template key.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is known. The description adds nothing beyond the action itself: it does not explain what the duplicate operation creates, whether the original is affected, or any side effects, leaving behavioral disclosure thin 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 two short sentences with no filler, front-loading the action and following with the only parameter hint. It is efficient, though the second sentence mixes parameter guidance with an unfinished thought about template keys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and 0% schema coverage, the description is too sparse. It omits what happens to the original template, what the duplicate returns, and the roles of request_id and idempotency_key, leaving the agent without enough context to invoke 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 partially explains email_type as either a built-in type or a custom template key, which is helpful, but request_id and idempotency_key are entirely undocumented in both schema and description, leaving two of three parameters semantically 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 states a clear verb ('duplicate') and resource ('an email'), matching the title and tool name. It does not distinguish this tool from sibling alternatives like email_templates_create or email_templates_read, but the core 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?
There is no guidance on when to use this tool versus alternatives such as creating a new template or reading an existing one. The sentence about email_type is parameter usage, not situational guidance, so the agent gets no context on when duplication is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_listList candidate and internal emailsBRead-onlyIdempotentInspect
List Candidate and Internal emails with automation usage counts.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds only that results include automation usage counts, which is modest but genuine context; it says nothing about pagination, filtering, or whether the list is workspace-scoped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the terseness is partly what leaves the parameter and usage questions unanswered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema and annotations covering safety, the description is minimally adequate. It still omits pagination behavior, filtering/scope, and the meaning of the sole parameter, which an agent would need to invoke 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% and the single parameter (request_id) has no description anywhere. The description does not compensate by explaining what request_id is or whether it is required, leaving the only parameter effectively 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?
States a specific verb ('List') and resource ('Candidate and Internal emails'), with an added detail about automation usage counts. It does not, however, name or distinguish itself from the many sibling template tools (read, preview, versions_list), so an agent must infer that this is the enumeration counterpart to email_templates_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no mention of alternatives such as yardstick_email_templates_read for a single template or yardstick_email_template_versions_list, and no stated prerequisites or scope filters. The agent is left to guess when this list tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_previewPreview an email with sample dataCIdempotentInspect
Preview an email for sample variables.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, but the description is silent on these traits. This matters because 'preview' implies a side-effect-free read, while the annotations say it is not read-only (and an idempotency_key parameter is required to make it so) — the description never explains that the call may materialize/persist something.
Agents need to know what a tool does to the 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, but it is thin rather than efficient — the brevity comes from omitted information, not from tight phrasing. There is no wasted text, so it is not a 2, but it under-serves the reader.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3-parameter tool with no output schema and no schema descriptions, the definition should explain inputs, return shape, and the surprising non-read-only semantics. It does none of these, leaving the agent unable to invoke the tool correctly beyond guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it explains none of the three parameters. 'email_type' (with a lowercase/snake_case pattern), 'request_id', and especially 'idempotency_key' derive no meaning from the text; 'sample variables' hints at inputs that aren't even in 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 states a recognizable action (preview an email) but is vague about the resource: 'sample variables' is undefined, and it never says it renders an email template. It also fails to distinguish itself from close siblings such as yardstick_email_templates_preview_customization and yardstick_email_drafts_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?
No when-to-use guidance, no prerequisites, and no routing to alternatives. An agent cannot tell from the text whether this previews a saved template, a draft, or a customization, nor when to prefer one of the three preview siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_preview_customizationPreview AI customization for an email template (nothing published)CIdempotentInspect
Preview AI sample customization for an email without publishing.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false and idempotentHint=true, so the safety profile is covered. The description reinforces non-persistence with 'without publishing', but it does not explain readOnlyHint=false, i.e. that this preview invokes AI generation and therefore is not a free/no-side-effect read, nor does it mention rate or cost implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that communicates the core action and the key constraint ('without publishing') with no filler. It is appropriately sized for what it attempts, even if it omits 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 three-parameter tool with no output schema, zero schema description coverage, and a non-read-only hint, one sentence is not enough. It never says what the preview returns, what email_type values are valid, or what request_id/idempotency_key are for.
Complex tools with many parameters or behaviors need more documentation. 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% and three parameters, the description must carry parameter meaning and does not. email_type is self-describing by name, but request_id and idempotency_key are entirely unexplained, including the expected email_type pattern/format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (preview) and resource (AI sample customization for an email), so the basic operation is understandable. However, it does not distinguish this tool from the closely named sibling yardstick_email_templates_preview, leaving an agent unable to tell which preview variant to pick without opening both schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without publishing' implies a contrast with publish, but there is no explicit when-to-use statement, no mention of prerequisites, and no routing to alternatives such as email_templates_preview or email_templates_create. The agent must infer the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_publishPublish an email versionCDestructiveInspect
Update, create, duplicate, reset or delete an email. Set operation; custom emails use email_type as their template key.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is partly covered. The description adds no publish-specific behavior — no irreversibility, versioning effect, permissions, or side effects — and its list of CRUD verbs is only loosely aligned with a destructive 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 with no padding, so it is not bloated. However, the brevity is spent on generic CRUD verbs rather than a front-loaded statement of the publish action, so the structure does not 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 destructive, non-idempotent mutation tool with no output schema and undocumented parameters, the description omits what publish actually changes and what it returns. It is not sufficient for an agent to invoke it 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% across 3 params, so the description must compensate. It only hints that email_type is the 'template key' for custom emails, and its instruction to 'Set operation' references an operation parameter absent from the schema, which is actively misleading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title say 'Publish an email version', but the description never mentions publishing. Instead it lists 'Update, create, duplicate, reset or delete' — operations that already have their own sibling tools (yardstick_email_templates_create/_delete/_duplicate/_reset). An agent cannot tell what this tool uniquely does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no reference to alternatives, even though create/delete/duplicate/reset siblings exist. 'Set operation' is vague and, worse, points to a parameter that does not exist in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_readRead an emailCRead-onlyIdempotentInspect
Read an email by built-in type or custom template key.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered without description help. The description adds only the lookup modes (built-in type vs custom template key); it says nothing about behavior on an unknown key, permission requirements, or returned shape.
Agents need to know what a tool does to the 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 efficient sentence with the verb front-loaded and no filler. It is concise to a fault, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with 0% schema description coverage and no output schema, the description is too thin: it omits the request_id parameter, the key format, and any failure behavior. An agent can attempt a call but cannot confidently construct correct inputs 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 carry the parameter burden. It hints that email_type accepts a built-in type or custom template key, but never explains the naming format or pattern constraint, and the second parameter (request_id) 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 names a verb ('Read') and resource ('an email'), but the resource is ambiguous: the tool name and siblings say 'email_templates', yet the text says 'email'. The phrase 'by built-in type or custom template key' partially resolves this to templates, but an agent must infer the distinction from email_templates_list/preview rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidance and no alternative named, despite a dense cluster of siblings (email_templates_list, email_templates_preview, email_templates_preview_customization) that an agent could easily confuse with this one. Usage is only weakly implied by 'Read ... by ... key'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_resetReset an email to its Yardstick defaultCDestructiveInspect
reset an email. Use email_type for a built-in type or custom template key.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description never warns that the current template is destroyed or that the action may be irreversible. It adds no behavioral context beyond the flag, and does not mention idempotency or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short, but the single sentence is not front-loaded and contains no operationally useful detail. Brevity here masks underspecification rather than avoiding waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A destructive mutation with no output schema and zero schema descriptions is missing too much: no confirmation of what changes, no permissions, no response shape. The description does almost none of the work the structured fields leave undone.
Complex tools with many parameters or behaviors need more documentation. 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 all three parameters are undocumented. The description weakly explains the email_type values but says nothing about request_id or idempotency_key. It does not 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 says 'reset an email' which restates the title but does not specify what is reset (customization, content, layout) or that it restores the built-in default. Sibling tools like delete, rollback, and duplicate make the action ambiguous 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?
No indication of when to use reset versus rollback, delete, or recreate. The only guidance is a parameter value rule, not a when-to-use condition. An agent cannot tell which email tool to pick from this description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_rollbackRestore an earlier email versionCDestructiveIdempotentInspect
Restore an email to an immutable version.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| version_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true and openWorldHint=false, which is most of the safety profile. The description adds only the word "immutable", which is a property of versions rather than a behavior of this call; it never states what current content is overwritten, whether the action is reversible, or what permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, which is structurally clean. The brevity is under-specification rather than economy, though — there is simply too little text to cover a destructive four-parameter mutation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, non-read-only mutation with no output schema and 0% parameter description coverage, the description should at minimum identify the resource domain, the target of the restore, and any prerequisite or reversibility note. None of that is present, so an agent cannot safely invoke it from this definition 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% across four parameters, so the description carries the full explanatory burden. It only loosely implies two of them ("an email" ~ email_type, "a version" ~ version_id) and says nothing at all about request_id or idempotency_key, leaving half the surface 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 verb ("Restore") and a resource ("an email") with a target ("an immutable version"), so the basic operation is inferable. However, it never says it operates on email templates, and it gives no differentiation from the close sibling yardstick_email_templates_reset or yardstick_email_templates_publish, leaving the agent to guess which of the trio to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no preconditions (e.g. the version must already exist via yardstick_email_template_versions_list), and no mention of alternatives such as reset. The agent gets a one-line statement of effect and nothing about the situation that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_templates_validateCheck an email for problemsCIdempotentInspect
Validate email subject, HTML, and text bodies.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry the safety profile (destructiveHint=false, idempotentHint=true), so the burden is lighter. However, the description adds nothing beyond the purpose line: it never explains what a validation failure looks like, whether it blocks publishing, or why readOnlyHint is false for an operation that intuitively sounds read-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?
It is a single, front-loaded sentence with no filler, which is structurally clean. But the terseness is achieved by omission rather than by efficient expression, so it reads as under-specified rather than 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?
For a tool with 3 undocumented parameters and no output schema, the description leaves critical gaps: which template is targeted, how validation errors are surfaced, and what the caller should do next. It is too thin for the operation it describes.
Complex tools with many parameters or behaviors need more documentation. 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 all 3 parameters (email_type, request_id, idempotency_key), so the description must compensate but does not name a single one. Worse, it references 'subject, HTML, and text bodies,' which are not parameters at all, creating a mismatch between the described inputs and the actual 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 pairs a specific verb ('Validate') with a concrete resource ('email subject, HTML, and text bodies'), so the operation is unambiguous. It does not, however, distinguish this from close siblings such as email_templates_preview or email_templates_preview_customization, which a caller could easily confuse with validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to validate versus preview a template, no statement of prerequisites (e.g., that an existing template identified by email_type is required), and no mention of what the caller should do with the result. The agent is left to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_email_template_versions_listList email template versionsCRead-onlyIdempotentInspect
List immutable email versions.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only the word 'immutable', which usefully implies versions cannot be altered or deleted, but says nothing about ordering, pagination, or what a version record 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 with no padding, but its brevity comes at the cost of under-specification rather than tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameter descriptions, and no usage context, the definition leaves the agent without enough information to call the tool confidently — particularly around the required email_type format and the purpose of request_id.
Complex tools with many parameters or behaviors need more documentation. 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% for both parameters, so the description carries the full burden and fails it. It never mentions email_type (required, with a strict lowercase/underscore pattern) or request_id (likely an idempotency key), leaving an agent to infer both from property 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 states a verb (List) and a resource (email versions), which is enough to identify a read operation, but 'email versions' is a slightly vague rendering of 'email template versions' and it does not distinguish this tool from siblings like yardstick_email_templates_list or yardstick_email_drafts_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 neighboring template tools (read, preview, rollback, publish), nor any stated prerequisite such as needing an existing template.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_events_listList API eventsBRead-onlyIdempotentInspect
List public Yardstick API events visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the visibility scope ('visible to the current principal'), but it does not disclose pagination behavior, ordering, event types, or return format, which would be useful for a list 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, tightly worded sentence that front-loads the core action and resource. There is no filler, redundancy, or 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?
This is a simple read-only list operation with no required parameters and strong annotation coverage, so the description does not need to be long. However, with no output schema and no mention of pagination or what an 'event' contains, an agent may still be uncertain about the response shape and listing 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%, and the description provides no parameter-specific explanation. The parameter names 'limit', 'starting_after', and 'request_id' are somewhat self-explanatory, but the description does not compensate for the missing schema descriptions or clarify semantics like pagination cursors.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 public Yardstick API events', and adds a scope qualifier ('visible to the current principal'). This is clear and distinct from generic list tools, though it does not explicitly differentiate itself from similar siblings like yardstick_audit_log_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as yardstick_audit_log_list or other list endpoints. It only states what the tool does, leaving usage decisions entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_final_recommendation_recordRecord a final hiring recommendationBDestructiveIdempotentInspect
Record direct final-recommendation evidence; this does not mutate application status.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| rating | Yes | ||
| request_id | No | ||
| session_id | No | ||
| application_id | Yes | ||
| idempotency_key | No | ||
| interviewer_user_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=true, so the bar is lower. The description adds one useful behavioral fact: despite being a mutation, it does not change application status. It does not disclose broader side effects, such as whether the recommendation overwrites prior evidence or affects downstream decision processes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence split into two clauses. It front-loads the action and resource, then adds a scoping clarification. Every word contributes; there is no filler or 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?
Given seven parameters, no output schema, a destructiveHint=true annotation, and a large sibling set, this description is too thin. It gives no guidance on expected outcome, return value, rating scale semantics, idempotency behavior beyond the annotation, or how this tool fits into the hiring workflow. A capable agent could call it, but would be guessing at workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It adds no meaning for application_id, interviewer_user_id, rating, notes, request_id, session_id, or idempotency_key. The schema property names are somewhat self-explanatory, and rating has min/max, but the description does not clarify semantics such as what 'rating' represents or which identifiers are 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 ('Record') and resource ('direct final-recommendation evidence'), and adds a scope qualifier ('does not mutate application status') that distinguishes it from transition/bind siblings. It is slightly jargon-heavy ('direct...evidence'), but the core action 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 clearly implies this tool is for recording final recommendation evidence, and the 'does not mutate application status' clause provides a useful boundary against status-changing tools. However, it does not explicitly state when to prefer this over related tools like decision bind/preview or scorecard submission, nor does it name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_identityRead the current API identityBRead-onlyIdempotentInspect
Return the current Yardstick API principal context.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds 'principal context' but does not elaborate on behavior, return format, or any additional side effects. Since annotations cover the main transparency needs, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is front-loaded with the verb and resource. There is no wasted wording, and it is appropriately concise for a simple read 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?
While the tool is simple and annotations cover safety, the description lacks any explanation of the 'principal context' or the 'request_id' parameter. For a minimal tool this might be sufficient, but a bit more detail would make it 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 mention the 'request_id' parameter at all. With zero compensation in the description, the parameter's purpose and usage remain unclear, which is a significant gap even for an optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'current Yardstick API principal context,' which accurately reflects the tool's name and title. It is distinct from sibling tools, as no other tool appears to handle API identity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 to check the current API identity/context, but it does not explicitly state when to use it or mention any alternatives. For a simple standalone read tool, the lack of explicit guidance is acceptable but not ideal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_integrations_workspace_health_readCheck workspace integration healthCRead-onlyIdempotentInspect
Read sanitized Workspace integration health diagnostics.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Read' is consistent with those. The description adds the detail of 'sanitized,' which hints that output is redacted, but it does not describe what health diagnostics are included or what error conditions might occur. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no filler. It leads with the action and object, making it immediately scannable. It earns its place despite being terse, though its brevity contributes to the lack of parameter transparency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only health tool, annotations cover safety, but the description still leaves out critical invocation details. The `request_id` parameter is undocumented, there is no output schema to explain the response, and the description gives no sense of what 'health diagnostics' specifically contains. An agent cannot confidently 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 schema defines a single optional `request_id` parameter with no description, and schema_description_coverage is 0%. The tool description does not mention the parameter at all, so an agent cannot infer its meaning, format, or whether it should be supplied. 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 states a clear verb ('Read') and resource ('Workspace integration health diagnostics'), and the title reinforces the purpose. The word 'sanitized' adds a useful scope qualifier, and no close sibling tool overlaps with this purpose. It would be a 5 if it explicitly named a sibling alternative, but the absence of any similar tool makes it effectively 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 no guidance on when to use this tool versus alternatives, nor does it state prerequisites, workspace context, or when not to call it. The intended use is only implied by the name and title, which is insufficient for an agent deciding among a large set of tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_add_competenciesAdd competencies to an interview plan draftAInspect
Add competencies to a draft exactly as written — deterministic, no AI generation. Requires confirmed outcomes; the resulting stage must stay within 25 competencies. Optional source_stage {stage: competencies, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses valuable behavior beyond annotations: deterministic pass-through, the confirmed-outcomes prerequisite, the 25-competency cap, and the 409 stale-version error on source_stage. These are concrete side effects and failure conditions that the schema and annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler; the core behavior is front-loaded, and every clause adds constraint or error 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 write tool with no output schema, the description covers prerequisites, limits, deterministic behavior, and an error condition. Nothing essential for an agent to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It clarifies source_stage semantics (version check, 409 on staleness) and says items are written exactly as-is, but it does not explain the many item subfields (definition, description, competency, title, details) or how they map to a competency, leaving real ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific operation: 'Add competencies to a draft exactly as written' with the clarifying qualifier 'deterministic, no AI generation.' This distinguishes it from sibling tools like generate_competencies and update_competencies without needing to open 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?
Gives clear usage context: this is for adding user-supplied competencies verbatim, and it requires confirmed outcomes before use. It implies the alternative generate_competencies when AI generation is wanted, but does not name that sibling explicitly or state exclusions such as when to use add_skills or add_questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_add_questionsAdd questions to a draft interview roundAInspect
Add questions to one draft round exactly as written — deterministic, no AI generation. Requires rounds; each round holds at most 50 questions. The first question edit on a round persists question_N ids for every question in that round. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds several important behavioral details beyond the annotations: deterministic execution (no AI generation), the 50-question round limit, the persistence of question_N IDs on the first edit, and the 409 stale response for optional source_stage. It does not contradict annotations. It could mention whether questions are appended or replace existing ones, but the disclosed quirks are valuable and non-obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no fluff. The core purpose and key constraints are front-loaded, and the behavioral nuances (ID persistence, staleness) are concisely presented. 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 nested parameters and no output schema, the description covers the main usage context: deterministic addition, round prerequisites, question limits, and concurrency behavior. It does not describe the response shape or explicitly state whether questions are appended vs. replaced, but the schema and sibling tool names provide enough surrounding structure. Overall, it is adequate with minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the purpose of source_stage (stale check) and the round_id requirement, plus the 50-question limit. However, it leaves parameters like guidance, followUpQuestions, tags, and id without explicit semantics — although their names are self-explanatory, the description does not fully compensate for the zero 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 uses a specific verb ('Add') and resource ('questions to one draft round'), immediately distinguishing it from siblings like add_competencies, add_skills, and update_questions. The phrase 'exactly as written' adds precision about the behavior. It is clear what this tool does and how it differs from 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 states that this is for deterministic, non-AI question addition, implying it is the manual counterpart to generate_questions_directions. It also gives concrete constraints ('Requires rounds', 'at most 50 questions') that indicate preconditions. It does not explicitly name alternative tools or state when not to use it, but the context is clear enough for an agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_add_roundsAdd interview rounds to an interview plan draftAInspect
Add interview rounds to a draft exactly as written — deterministic, no AI generation. Requires skills; the resulting sequence must stay within 20 rounds. Optional source_stage {stage: interview_sequence, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, it discloses key behavior: no AI generation, the skills prerequisite, the hard 20-round sequence limit, and the 409 stale response when source_stage.version is outdated. These are exactly the behavioral details an agent needs and annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense, front-loaded sentence with no filler. The core action and deterministic behavior come first, followed by prerequisite, limit, and concurrency 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?
The key constraints, prerequisite, and stale-error behavior are covered, which is most of what an agent needs to invoke this mutating tool correctly. There is no output schema and the description does not state the response shape, and the many items fields are left unexplained, so completeness 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?
Schema description coverage is 0%, yet the description only explains source_stage's stale-version behavior and the sequence limit. It does not explain what belongs in items, what fields like duration, recommendedQuestionCount, or interviewerGuidance mean, or how required action/resource should be filled. The description does not compensate for the schema's missing 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 action ('Add interview rounds to a draft exactly as written') on a specific resource (interview plan draft) and immediately distinguishes it from AI-generation tools by saying 'deterministic, no AI generation'. This clearly separates it from siblings like generate_rounds 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?
It gives a clear context: use when you have exact rounds to add deterministically, requires skills, and must respect a 20-round resulting sequence. It does not explicitly name sibling alternatives or state 'do not use generate_rounds', but the deterministic/no-AI contrast provides a usable routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_add_skillsAdd job skills to an interview plan draftAInspect
Add job skills to a draft exactly as written — deterministic, no AI generation. Requires competencies; the resulting stage must stay within 50 skills. Optional source_stage {stage: skills, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only and non-idempotent, but the description adds essential behavior: writes are exact and deterministic, prerequisites exist (competencies), a hard limit of 50 skills applies, and stale source_stage versions trigger a 409. No contradiction with annotations; it supplements them with concrete constraint and failure 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 entire description fits in three short sentences, with the core purpose front-loaded and constraints packed efficiently. Every clause adds information without repetition 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 mutation tool with nested objects and no output schema, the description covers key constraints and conflict behavior, but omits item field semantics and failure modes (e.g., what happens if competencies are absent or the 50-skill limit is exceeded). It is adequate for a simple call but leaves ambiguity for complex inputs.
Complex tools with many parameters or behaviors need more documentation. 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 clarify parameter meaning. It explains source_stage's shape and staleness behavior, and conveys that items are written verbatim. However, it does not describe the individual item fields (id, name, skill, title, details, category, description, requirement) that appear in the schema, leaving their semantics and required combinations 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 opens with 'Add job skills to a draft' and then qualifies it with 'exactly as written — deterministic, no AI generation', making the tool's purpose unmistakable and separating it from sibling generate_skills. It also distinguishes from update, delete, and clear tools on the same draft 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 supplies usage preconditions: 'Requires competencies' and 'the resulting stage must stay within 50 skills'. It also describes the optional source_stage parameter and warns about a 409 on stale versions. It implies the alternative of generate_skills through the 'no AI generation' clause, but does not explicitly name sibling tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_clear_competenciesClear all draft competencies, leaving the section emptyADestructiveIdempotentInspect
Clear every competency from a draft, leaving the stage deliberately empty — deterministic, no AI generation. Prunes the behavioral anchors of every cleared competency in the same write and reports the pruned ids. The emptied draft cannot be published as a new plan; bind the emptying onto an already-live plan with modify_active. Optional source_stage {stage: competencies, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by disclosing that the operation is deterministic, prunes behavioral anchors in the same write, reports the pruned ids, and makes the draft unpublishable as a new plan. It also explains the 409 stale-version behavior. This adds substantial behavioral context beyond readOnly/destructive/idempotent 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 three sentences with no filler. The primary action is front-loaded, and each sentence adds a distinct, useful fact: determinism, anchor pruning, publication restriction, and staleness behavior. It is dense but 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?
For a destructive draft-mutation tool with no output schema, the description is unusually complete: it covers the operation, side effects, returned information, publication constraints, the recommended alternative, and the stale version failure mode. An agent has enough to call it correctly and avoid the main pitfalls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It usefully explains source_stage semantics and its stale-version 409 behavior. However, it does not clarify what happens when source_stage is omitted, and it does not add meaningful explanations for request_id or idempotency_key, though those are standard and partly self-evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Clear every competency from a draft' and adds the key distinction 'deterministic, no AI generation.' It clearly separates this from generate_competencies and delete_competencies siblings by emphasizing it clears all competencies and prunes anchors, not just individual 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 gives explicit usage context: the emptied draft cannot be published as a new plan, and the intended alternative path is to 'bind the emptying onto an already-live plan with modify_active.' It also warns about the stale source_stage returning 409. It does not explicitly contrast with delete_competencies for partial removal, but the guidance is clear enough for most selection decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_clear_interview_sequenceClear all draft interview rounds, leaving the section emptyADestructiveIdempotentInspect
Clear every interview round from a draft, leaving the stage deliberately empty — deterministic, no AI generation. Prunes the questions and directions of every cleared round in the same write and reports the pruned round ids. The emptied draft cannot be published as a new plan; bind the emptying onto an already-live plan with modify_active. Optional source_stage {stage: interview_sequence, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already marking this as destructive and idempotent, the description adds substantial behavioral detail: it prunes questions and directions in the same write, reports pruned round ids, and clarifies that the operation is deterministic with no AI generation. It also discloses the post-condition (cannot publish as new plan) and the concurrency failure mode (409 when stale). This goes well beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences pack the core purpose, side effects, constraints, and a parameter caveat with zero fluff. The most critical information (what it does and that it's deterministic) is front-loaded, followed by consequences and the optional parameter 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?
For a destructive tool with no output schema, the description covers the key facts: what gets cleared, what is pruned, what is reported, the publish restriction, and the stale-version outcome. It does not detail the exact response envelope, but 'reports the pruned round ids' gives enough for an agent to expect a list. The sibling context and annotations round out the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It explains the 'source_stage' parameter's purpose and behavior (returns 409 when stale) and adds context about the write scope. The action and resource constants are self-explanatory from the schema, so the description compensates for the missing schema descriptions without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 every interview round from a draft'), identifies the resource (an interview plan draft), and clarifies its scope ('every interview round' vs. individual rounds). It also distinguishes itself from AI-generation tools by noting 'deterministic, no AI generation,' making it clear which 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?
The description provides important usage context, including the consequence that an emptied draft cannot be published and the alternative path of binding it to a live plan via 'modify_active.' It also warns about the stale-version 409 behavior with 'source_stage.' It doesn't explicitly name sibling tools like 'delete_rounds' for when to use this over those, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_clear_job_skillsClear all draft job skills, leaving the section emptyADestructiveIdempotentInspect
Clear every job skill from a draft, leaving the stage deliberately empty — deterministic, no AI generation. The item delete refuses to remove the last skill, so this is the only way to record that the section was addressed and left empty. The emptied draft cannot be published as a new plan; bind the emptying onto an already-live plan with modify_active. Optional source_stage {stage: skills, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint and idempotentHint, but the description adds key behavioral traits beyond those: it is deterministic (no AI generation), it is the only way to record an intentionally-empty skills section, and a stale source_stage yields 409. The warning that a cleared draft cannot be published as a new plan is critical context not present in structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler: the core action is front-loaded, then the reason, then the caveats. Every sentence earns its place—the delete limitation, the publish restriction, and the source_stage concurrency behavior are all decision-relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 clear operation, the description covers the key decision points: when to use it, what happens to the draft (can't publish), how to apply to live plans, and concurrency behavior. No output schema exists, but the invocation behavior is fully described and the effect is a deliberate clearing, so nothing is missing for correct selection and 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 carries the full burden. It explains the only non-obvious parameter, source_stage, including the stage const and the version-staleness 409 behavior. The generic wrapper parameters (action, resource, input) are self-evident from the schema consts/patterns, so the description adds meaning where it matters most.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('clear') and resource ('every job skill from a draft') plus the resulting state ('leaving the stage deliberately empty'). It distinguishes itself from sibling delete_skills by citing that delete refuses the last skill, and from generate_skills by asserting it is deterministic with no AI generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 names the alternative (delete) and explains the condition that makes this tool necessary: the delete refuses to remove the last skill. It also adds a workflow rule—the emptied draft cannot be published as a new plan—and directs the agent to modify_active for live plans, leaving no ambiguity about when to use this vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_clear_outcomesClear all draft outcomes, leaving the section emptyADestructiveIdempotentInspect
Clear every outcome from a draft, leaving the stage deliberately empty — deterministic, no AI generation. Outcomes have no item-level delete, and confirm_outcomes requires at least one outcome, so this is the only way to record that the section was addressed and left empty. The emptied draft cannot be published as a new plan; bind the emptying onto an already-live plan with modify_active. Optional source_stage {stage: outcomes, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond destructiveHint/idempotentHint annotations, the description discloses determinism (no AI generation), the inability to publish an emptied draft as a new plan, and the 409-on-stale behavior of source_stage. This gives the agent a clear safety and lifecycle picture.
Agents need to know what a tool does to the 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-loaded with the core operation and followed by only high-value constraints and routing. There is no filler or repetition of the title/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 destructive draft-clearing tool, the description covers purpose, alternatives, side effects, publication limitation, and concurrency failure mode. Even without an output schema, an agent has enough to call it correctly and avoid destructive mistakes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates for the key business parameter by explaining source_stage's optimistic-concurrency role and 409 outcome. It does not add prose for action/resource or request_id/idempotency_key, but those are standard or fixed by the schema, so the main parameter semantics are covered.
Input schemas describe structure but not intent. Descriptions should explain 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 opens with a specific, distinct action: clear every outcome from a draft and leave the section deliberately empty. It separates itself from clear_competencies/clear_job_skills and from confirm_outcomes/generate_outcomes by naming the section and noting deterministic no-AI behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditions for choosing this tool: outcomes have no item-level delete, confirm_outcomes requires at least one outcome, and only this tool can record that the section was addressed and left empty. It also warns that an emptied draft cannot be published as a new plan and points to modify_active, so the agent knows when not to use this path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_confirm_outcomesConfirm draft hiring outcomesCDestructiveIdempotentInspect
Confirm draft interview-plan outcomes before generating later stages.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and idempotentHint=true, but the description does not explain what 'confirm' does behaviorally—whether it locks the outcomes, overwrites previous confirmations, or triggers irreversible downstream generation. The description adds no context about side effects, permissions, or state changes beyond what the annotations already signal. For a destructive 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, concise sentence that front-loads the action and resource. It is appropriately sized for the tool's purpose, though it could add a bit more context 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?
Given the tool has no output schema, 0% parameter coverage, and destructive annotations, the description is too thin. It doesn't explain what happens after confirmation, what the response contains, or how the accepted_outcomes should be structured. An agent would need to infer workflow details from sibling tool names and 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%, so the description must compensate for parameter meaning. The description mentions 'outcomes' but does not explain the required 'accepted_outcomes' array structure, the optional 'source_stage' object, or 'revision_notes'. An agent must open the schema to understand what to pass, and the description adds no semantic guidance about how these parameters relate to the confirmation action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Confirm draft interview-plan outcomes before generating later stages' clearly states the verb (confirm), the resource (draft interview-plan outcomes), and the purpose (before generating later stages). It distinguishes itself from sibling tools like generate_outcomes and clear_outcomes by indicating this is a confirmation step, 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?
The description implies when to use this tool: after drafting outcomes and before generating later stages. However, it doesn't explicitly state when not to use it or mention alternatives like generate_outcomes or update_outcomes. The context is clear enough for an agent to infer the workflow position, but lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_delete_anchorsDelete draft scorecard anchorsADestructiveIdempotentInspect
Delete behavioral-anchor entries for draft items by item id. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description doesn't need to restate that. It adds a valuable behavioral detail: 'Optional source_stage ... returns 409 when stale', disclosing a concurrency control behavior not covered by annotations. It does not mention other side effects like cascading deletions or behavior on missing item_ids, but the provided detail is useful beyond the structured data.
Agents need to know what a tool does to the 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-loading the primary action and then adding the optional parameter behavior. Every word earns its place; there is no fluff or repetition. The structure is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation with 5 parameters and nested objects, the description covers the core action and the optional concurrency check. It does not explain what a successful response looks like (no output schema exists), but that is not required. It also doesn't mention prerequisites like the draft existing or the anchors being present, but the destructive and idempotent annotations cover the safety profile. Overall, it is fairly complete for the operation'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%, so the description must explain parameters. It explicitly mentions 'by item id' for the item_ids parameter and describes the source_stage object with its stage and version fields, including the 409 behavior. It does not detail the resource.id parameter, but that is implied as the draft identifier from the schema pattern and title. Overall, it compensates reasonably 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?
States a specific verb ('Delete'), a specific resource ('behavioral-anchor entries for draft items'), and the key selector ('by item id'). This clearly distinguishes it from sibling tools like update_anchors or generate_anchors based on the action alone. The title 'Delete draft scorecard anchors' reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by its action verb and resource but provides no explicit guidance on when to choose this tool over alternatives (e.g., when to use delete_questions vs delete_anchors). It does not state exclusions such as 'only for draft items, not published plans', although the title hints at drafts. No comparison with sibling delete tools is given, so an agent must infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_delete_competenciesDelete draft competenciesADestructiveIdempotentInspect
Delete draft competencies by id. Prunes each deleted competency's behavioral anchors in the same write and reports the pruned ids; the stage must keep at least one competency. Optional source_stage {stage: competencies, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true, idempotentHint=true), the description discloses concrete side effects: behavioral anchors are pruned in the same write and pruned ids are reported, the stage must retain at least one competency, and optional source_stage causes a 409 on stale version. This meaningfully exceeds what annotations alone convey and is consistent with destructiveHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the core operation is front-loaded, followed by side-effect and invariant details, then the optional concurrency behavior. Every sentence adds decision-relevant 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 destructive nested-parameter tool with no output schema, the description covers the return signal (pruned ids), the key invariant (at least one competency), the write scope (anchors pruned atomically), and the concurrency failure mode (409 stale). No critical behavioral gap remains for an agent deciding whether and how to call 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?
With schema prose coverage at 0%, the description carries the semantic burden and does so well for the key parameters: "by id" maps to the required ids array, and "source_stage {stage: competencies, version} returns 409 when stale" explains the purpose of the optional concurrency object. It does not enumerate every wrapper field (action, resource, request_id, idempotency_key), but those are fixed or conventional and largely self-evident from 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 opens with a specific verb and resource: "Delete draft competencies by id," and immediately distinguishes this from bulk operations like clear_competencies by emphasizing targeted deletion. It also adds unique behavioral details (pruning anchors, one-competency minimum) that make the tool's purpose unambiguous among many interview-plan 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 clearly implies when to use it: to delete specific competencies by id rather than clearing all, and it encodes the invariant that at least one competency must remain. It does not explicitly name an alternative sibling like clear_competencies, so the guidance is clear context without an explicit exclusionary routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_delete_questionsDelete questions from a draft interview roundADestructiveIdempotentInspect
Delete questions from one draft round by question id. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and idempotentHint=true, and the description adds concrete behavioral detail: source_stage enables optimistic concurrency and returns 409 when stale. It also scopes what is destroyed (questions in a single draft round). This meaningfully supplements the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences with no filler: the first front-loads the primary operation and inputs, the second adds the optional concurrency behavior. 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 destructive delete call, the description plus annotations give an agent enough to invoke it correctly: required ids and round_id, optional source_stage, and the 409 stale failure mode. There is no output schema, but the absence of a return description is acceptable here. The main minor gap is unspecified behavior for unknown or already-deleted ids.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the semantic burden. It clarifies that ids are question ids, round_id identifies the draft round, and source_stage uses the stage constant questions_and_directions plus a version for stale detection. The fixed action/resource fields are not explained, but the deletion-specific parameters are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 exact operation: 'Delete questions from one draft round by question id,' with a specific verb, resource scope, and identifier. This clearly distinguishes it from sibling tools like update_questions or delete_rounds. The action constant 'interview_plan.delete_questions' reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the verb and scope ('one draft round'), so an agent can infer when to call it, but it does not explicitly name alternatives or when-not-to-use conditions. The source_stage note describes a concurrency detail rather than routing guidance. This 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.
yardstick_interview_plan_drafts_delete_roundsDelete draft interview roundsADestructiveIdempotentInspect
Delete draft interview rounds by id. Prunes each deleted round's questions and directions in the same write and reports the pruned ids; the sequence must keep at least one round. Optional source_stage {stage: interview_sequence, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations' destructiveHint and idempotentHint, the description discloses that deleting a round also prunes its questions and directions in the same write, that pruned ids are reported, and that stale versioned edits return 409. This is exactly the behavioral context an agent needs before invoking a destructive draft mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences present the action first, then side effects and invariants, then the optional concurrency parameter. Every clause adds semantic information; there is no repetition of the title 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 destructive tool with no output schema, it covers what gets deleted, what side effects occur, the minimum-remaining-round invariant, and the stale-write error. The only notable omission is a fuller description of the success response shape beyond "reports the pruned ids", which prevents a top score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
It translates the opaque ids and source_stage objects into meaning: ids identify draft rounds to delete, and source_stage is a concurrency guard with stage interview_sequence and version that triggers 409 when stale. With zero schema descriptions, this compensation is valuable, though generic top-level fields are left to schema conventions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause "Delete draft interview rounds by id" names a specific verb, resource, and targeting method, distinguishing it from sibling delete_* tools that act on anchors, competencies, questions, or skills. The cascade behavior further clarifies it is about rounds, not the child content individually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 practical context—the sequence must keep at least one round, and passing source_stage adds optimistic concurrency with a 409 on staleness—so an agent knows preconditions and when the 409 path matters. However, it never explicitly routes between this and sibling tools such as delete_questions or delete_anchors, leaving alternatives to be inferred from names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_delete_skillsDelete draft job skillsADestructiveIdempotentInspect
Delete draft job skills by id; the stage must keep at least one skill. Optional source_stage {stage: skills, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructive, idempotent), the description discloses the 'must keep at least one skill' invariant and the optimistic concurrency behavior where a stale source_stage version yields 409. This adds meaningful operational context without contradicting any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, action verb front-loaded, each sentence adds essential information: the core operation, the invariant, and the concurrency parameter. 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?
For a delete operation with no output schema, the description covers the essential details: what is deleted, the invariant, and the concurrency guard. It does not explicitly state the error for violating the at-least-one-skill rule, but the constraint itself is sufficient for an agent to infer the risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates by explicitly meaning the ids parameter ('by id') and detailing the source_stage object with its stage and version fields, including the consequence of staleness. It leaves the standard action/resource/request_id params to the schema, which is acceptable as they are self-evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Delete' with the resource 'draft job skills' and clarifies the operation is by id, distinguishing it from siblings like clear_job_skills (bulk removal) and update_skills. The at-least-one-skill constraint adds further precision about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call this to remove specific skills by id from a draft. However, it does not explicitly contrast with alternatives such as clear_job_skills or update_skills, and no exclusions or decision rules are provided. The guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_generate_anchorsGenerate draft scorecard anchorsADestructiveInspect
Generate scorecard behavioral anchors (levels 1-4) for each draft competency, or one competency when competency_id is supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag destructiveHint: true, but the description adds no context about what is destroyed (e.g., whether it overwrites existing anchors). For a mutation tool, the description should disclose side effects beyond the generic annotation; it does not. This is a notable 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, tightly-worded sentence with no filler. It front-loads the core action and scope, then adds the conditional behavior. 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?
Given the tool's complexity (nested objects, 5 parameters, no output schema, destructive hint), the description is incomplete. It does not explain the input object's fields, what the generated anchors look like, or the destructive behavior. An agent would have to rely on the schema and sibling patterns to fully understand the 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 all parameters. It only explains the role of competency_id (limiting generation to one competency) but leaves instructions and source_stage unexplained. The 'levels 1-4' hint gives some context, but the other two fields remain 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 a specific verb (generate), resource (scorecard behavioral anchors), and scope (each draft competency or one competency when competency_id is supplied). It distinguishes itself from sibling tools like generate_competencies and update_anchors by naming the exact output and the condition for targeting a single competency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 on when to use the tool: it generates anchors for all competencies by default, or for a specific one when competency_id is provided. However, it does not mention exclusions or alternatives (e.g., using update_anchors if anchors already exist), so it stops short of fully routing the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_generate_competenciesGenerate draft competenciesCDestructiveInspect
Generate draft interview-plan competencies from confirmed outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and idempotentHint=false, but the description does not explain what destructive action occurs—whether generation replaces existing competencies, appends to them, or requires cleared state. Saying 'generate from confirmed outcomes' adds only an input condition, not behavioral consequence. No contradiction exists, but the description fails to add meaningful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler words. It communicates the core action and the key input source efficiently. It loses one point because the extreme brevity comes at the cost of needed behavioral and parameter detail, but as prose it is appropriately 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?
For a tool with five parameters, nested input objects, zero schema descriptions, a destructive annotation, and no output schema, a one-sentence description is inadequate. The agent is left without enough information to construct a valid request, understand side effects, or interpret results. This is comparable to the lowest calibration 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 carries the full burden of explaining parameters. It only hints at 'confirmed outcomes,' which loosely maps to outcome_ids or source_stage, but it does not explain instructions, source_stage.version, the interview_plan_draft resource type/id pattern, or the required action constant. This is far too little compensation for five undocumented parameters, including nested objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 pair ('generate draft interview-plan competencies') and adds a source constraint ('from confirmed outcomes'), which helps distinguish it from sibling tools like add_competencies, update_competencies, and generate_skills. However, it does not explicitly contrast itself with adjacent generate or manual-add tools, so it stops just 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 'from confirmed outcomes' implies a prerequisite (outcomes must already be confirmed), but there is no explicit guidance on when to use this tool versus add_competencies, update_competencies, clear_competencies, or generate_skills. No exclusions or alternative recommendations are provided, leaving the agent to infer the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_generate_outcomesGenerate draft hiring outcomesADestructiveInspect
Generate draft interview-plan outcomes from explicit role context, or pass accepted_outcomes to store caller-written outcomes verbatim with no AI generation (the deterministic draft bootstrap).
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | No | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry destructiveHint=true and readOnly=false; the description adds the useful behavioral detail that accepted_outcomes are stored verbatim with no AI generation. It does not describe what existing outcomes are replaced or any other side effects, but the annotation covers the core safety signal.
Agents need to know what a tool does to the 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 sentence front-loads the primary action, then adds the alternate deterministic mode in a parenthetical. No filler or repetition of schema constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, non-idempotent write tool with no output schema and no param descriptions, the description gives the essential mode distinction but omits return behavior, the required-role_context nuance in accepted_outcomes mode, and how this leads into confirm_outcomes. Basic invocation is clear, but an agent is left to infer several correctness 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?
With 0% schema description coverage, the description compensates for the two key params: role_context as the generation source and accepted_outcomes as verbatim caller-written outcomes. It still leaves source_job_id and instructions unexplained and does not clarify that role_context remains required by the schema even in accepted_outcomes mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Generate draft interview-plan outcomes') and a concrete resource, and distinguishes this from sibling generators by naming outcomes and the accepted_outcomes bypass. An agent can tell it apart from generate_competencies, generate_rounds, etc. 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?
It gives two concrete usage modes: AI generation from role_context vs. deterministic storage of accepted_outcomes. It does not explicitly route to siblings like confirm_outcomes or exclude any cases, 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.
yardstick_interview_plan_drafts_generate_questions_directionsGenerate draft questions and interviewer directionsBDestructiveInspect
Generate interview questions and interviewer/candidate directions for each draft round, or one round when round_id is supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry destructiveHint=true and readOnlyHint=false, so the safety profile is structured. The description adds the scoping behavior (all rounds vs one round) but does not disclose that generation plausibly overwrites existing draft questions/directions, the natural reading of destructiveHint. No contradiction between description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action, with the scoping conditional appended. No filler and no repetition of the schema's type 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 tool has 5 parameters, a nested source_stage object, no output schema, and a destructive annotation, yet the description explains only the core purpose and the round_id switch. Missing: what instructions control, what source_stage/version reference, what happens to existing content, and what a successful generation returns. For a complex, destructive generation tool this is a meaningful 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%, so parameter meaning falls entirely on the description, but only round_id gets any explanation ('when round_id is supplied'). instructions (max 10,000 chars) and source_stage (nested object with stage/version) are completely unexplained in both schema and description, leaving an agent to guess their roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Generate') and resource ('interview questions and interviewer/candidate directions'), and adds a scope conditional: all draft rounds unless round_id targets one. This is clear enough to tell it apart from fellow generate_* siblings by output type, though it never explicitly names an alternative. The round_id conditional adds precision beyond the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 one piece of decision guidance: omit round_id to generate for every draft round, supply it to restrict to a single round. However, no guidance distinguishes this from related tools like add_questions or update_round_directions, and no exclusions or prerequisites are stated. The when-to-use context is partial at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_generate_roundsGenerate draft interview roundsCDestructiveInspect
Generate draft interview-plan rounds from confirmed skills.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and read-write, but the description adds nothing about what the operation does to existing draft rounds—whether it overwrites them, appends to them, or depends on accepted_rounds as constraints. The description does not contradict the annotations, but it also does not disclose the side effects that the destructiveHint warns about.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and object, with no filler or repetition. It is as concise as a description can be while 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?
This is a complex generative tool with a nested accepted_rounds array, an instructions field, a source_stage pointer, a destructive annotation, and no output schema, yet the description is a single seven-word sentence. It leaves the agent without guidance on required inputs, output shape, side effects, or how this step fits into the overall draft workflow.
Complex tools with many parameters or behaviors need more documentation. 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 needed to compensate by explaining the non-obvious parameters, but it only mentions 'confirmed skills.' It never clarifies what accepted_rounds represents, why instructions is needed, what version means, or how source_stage should be set. Property names and structure do some work, but the burden is on the description and it is not met.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Generate draft interview-plan rounds') and identifies its source ('confirmed skills'), which separates it from the other generate_* siblings such as generate_skills, generate_competencies, and generate_outcomes. It does not explicitly contrast with add_rounds or update_rounds, but the verb and draft scope are clear 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?
The phrase 'from confirmed skills' implies the tool should be used after skills are confirmed, but it never states that prerequisite directly, nor does it mention alternatives like add_rounds or update_rounds. An agent must infer the correct workflow placement rather than being told when this generator is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_generate_skillsGenerate draft job skillsCDestructiveInspect
Generate draft interview-plan skills from confirmed competencies.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructive behavior (destructiveHint: true) and non-idempotency, but the description adds no behavioral context beyond 'generate'. It does not disclose whether existing skills are overwritten, what side effects occur, or what happens on repeated calls. No contradiction exists, but the description fails to enrich the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff or repetition. It efficiently conveys the primary purpose, though it is arguably too terse 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?
This is a destructive, non-idempotent write tool with a nested input schema and no output schema. The one-sentence description leaves critical context uncovered: workflow prerequisites, return values, behavior on existing data, and parameter semantics. For an agent to invoke this correctly, it would need to infer most information from the raw 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?
With schema description coverage at 0%, the description carries the full burden of explaining parameters, but it mentions none. Terms like 'accepted_skills', 'source_stage', and 'instructions' remain semantically opaque; the description's 'from confirmed competencies' only loosely maps to source_stage without clarifying its structure or the role of accepted_skills.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('generate'), a resource ('draft interview-plan skills'), and a source ('from confirmed competencies'), which clearly conveys the tool's core function. It distinguishes this from siblings like 'add_skills' (manual addition) and 'generate_competencies' (different target). The minor inconsistency between the title ('draft job skills') and description ('interview-plan skills') 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?
There is no explicit guidance on when to use this tool versus alternatives such as 'add_skills', 'update_skills', or 'generate_competencies'. The phrase 'from confirmed competencies' implies a prerequisite but does not explain the workflow placement or provide any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_listList interview plan draftsARead-onlyIdempotentInspect
List interview-plan drafts, newest first. Optional job_id narrows the list to one job and takes a job_ public display id. Use this to find an ipd_ draft id again after an interrupted builder session.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| job_id | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds ordering behavior ('newest first') and job_id narrowing, which is useful context beyond annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core action and ordering front-loaded. Every sentence adds value: list + order, optional filter, and when to use. 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?
Purpose and safety are clear thanks to annotations and description, but with no output schema and no mention of pagination parameters (limit, starting_after), an agent may not know response shape or how to paginate. Some completeness is missing for a 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 coverage is 0%, so the description must compensate. It only explains job_id (taking a job_ public display id); limit, starting_after, and request_id are left undocumented Mick. For a list tool, pagination parameters are important for correct invocation, so the description insufficiently covers meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List interview-plan drafts' with ordering 'newest first'. Clearly distinguishes from sibling tools like interview_plans_list (published plans) and interview_plan_drafts_read, and adds a concrete use case (finding an ipd_ draft id after an interrupted builder 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?
Provides a clear context: use after an interrupted builder session to recover a draft id. Does not explicitly name alternatives or state when not to use, but the scenario and filtering option give sufficient guidance for typical list usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_readRead an interview plan draftARead-onlyIdempotentInspect
Read one interview-plan draft in full: every stage checkpoint (outcomes, competencies, job skills, interview sequence, questions and directions), stage_versions for source_stage preconditions, status, and source metadata. Question ids are always present (question_N fallback), so edits can target them directly.
| Name | Required | Description | Default |
|---|---|---|---|
| draft_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds behavioral value by disclosing what the read returns (all stage checkpoints, stage_versions, status, source metadata) and the guaranteed presence of question ids, which is useful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with two sentences that each earn their place: the first defines the tool's scope and return contents, and the second highlights the question-id invariant for downstream edits. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the readOnly annotations, the description adequately explains what is returned and the id guarantee. The main gap is the lack of any guidance on the optional request_id parameter, but overall the tool is sufficiently specified for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 draft_id or request_id at all. An agent gets no guidance on what request_id is for, whether it is required, or how draft_id should be formatted, leaving a significant gap for correctly 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 verb and resource: 'Read one interview-plan draft in full,' and enumerates the contents (checkpoints, stage_versions, status, source metadata). It also differentiates from sibling list tools by emphasizing 'one draft' versus a collection, 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 description gives clear context for when to use this tool: before edits, because 'Question ids are always present... so edits can target them directly.' It does not explicitly name alternative list or update tools or state when not to use it, but the purpose is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_update_anchorsSet draft scorecard anchorsADestructiveIdempotentInspect
Upsert behavioral anchors for draft items, keyed by item id with levels 1-4 — deterministic, no AI generation. Requires competencies; anchors keyed to unknown item ids are rejected by id. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses several important behaviors: deterministic output, no AI generation, rejection of unknown item ids, and a 409 on stale source_stage. These add real context beyond readOnly/destructive/idempotent hints and align with the annotations' write-oriented 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?
A single dense sentence with zero filler. The primary action and key constraints are front-loaded, followed by preconditions and failure semantics. Every clause adds information needed to call the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 nested objects, no output schema, and safety hints, the description covers the essential call conditions: keying, level range, deterministic behavior, competency requirement, unknown-id rejection, and stale-version conflict. It doesn't describe the response/return shape, but with no output schema that is less critical; minor gap only.
Complex tools with many parameters or behaviors need more documentation. 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 carry the semantic load. It explains that anchors are keyed by item id with levels 1-4 and that source_stage has a stage/version shape causing 409 on staleness. This meaningfully compensates for the schema's bare structure, though it doesn't enumerate every nested constraint.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Upsert'), a precise resource ('behavioral anchors for draft items'), and key identifiers ('keyed by item id with levels 1-4'). The explicit 'deterministic, no AI generation' contrast cleanly distinguishes this from sibling generate_anchors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 useful usage context: requires competencies, rejects unknown item ids, and has a stale-version failure mode. However, it never names an alternative tool like generate_anchors or delete_anchors explicitly; the 'no AI generation' note implies the distinction without an explicit when-to-use/when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_update_competenciesRewrite or reorder draft competenciesADestructiveIdempotentInspect
Replace draft competencies by id and/or reorder them with order (a complete permutation of resulting ids) — deterministic, no AI generation. Updating in place keeps the item id. Optional source_stage {stage: competencies, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond annotations: it is 'deterministic, no AI generation' (important for an agent deciding whether to use this vs generate_competencies), it updates in place keeping the item id, and it returns 409 when stale if source_stage is provided. The annotations already indicate destructiveHint=true and idempotentHint=true, but the description adds the concurrency behavior and the in-place semantics, which 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 two sentences with no filler. It front-loads the primary action ('Replace draft competencies by id and/or reorder them with order'), then adds the deterministic note, the in-place behavior, and the concurrency option. 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 mutation tool with no output schema, the description covers the essential behavioral contract: what it does, how ordering works, the deterministic nature, and the stale-version failure mode. It doesn't explain the full item schema (e.g., which fields are updatable), but the input schema already enumerates those fields. The description is complete enough for an agent to select and 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%, so the description must compensate. It explains the meaning of 'items' (draft competencies to replace by id), 'order' (a complete permutation of resulting ids), and 'source_stage' (optimistic concurrency check returning 409 when stale). It doesn't detail every field inside items (name, title, details, etc.), but the core parameters are semantically clarified, which is sufficient for an agent 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 ('Replace draft competencies by id and/or reorder them with order') and a specific resource ('draft competencies'), and it distinguishes itself from sibling tools like add_competencies, delete_competencies, and clear_competencies by emphasizing in-place update and reordering. The title 'Rewrite or reorder draft competencies' reinforces the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when you need to modify existing competencies in a draft (rewrite or reorder) rather than add or delete them. It doesn't explicitly name alternatives like add_competencies or delete_competencies, but the verb 'replace' and 'reorder' plus the sibling context make the usage context clear. It also mentions the optional source_stage for optimistic concurrency, which is a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_update_questionsRewrite or reorder a draft round's questionsADestructiveIdempotentInspect
Replace one draft round's questions by id and/or reorder them with order (a complete permutation of that round's resulting question ids) — deterministic, no AI generation. Read the draft first: stored questions expose stable question_N ids. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry destructiveHint=true and readOnlyHint=false; the description adds determinism, no AI generation, the complete-permutation requirement for order, and the 409 stale behavior. It could more explicitly warn about overwriting existing question text, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences front-load the core action and then add only high-value caveats: read first, stable ids, no AI generation, and stale conflict behavior. There is 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?
For a destructive nested-parameter tool with no output schema, the description covers the core workflow, id semantics, ordering constraint, and concurrency failure. It leaves common top-level fields such as request_id and idempotency_key to the schema, which is reasonable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates for key parameters: order must be a complete permutation of resulting ids, questions are referenced by stable question_N ids, and source_stage acts as a version guard. It doesn't detail text/guidance/followUpQuestions/tags fields, but the schema property names and 'rewrite' wording cover much of that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Replace one draft round's questions by id and/or reorder them with order.' It clearly separates this from add/delete/generate siblings by limiting scope to existing questions and explicitly stating 'deterministic, no AI generation.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 actionable context: 'Read the draft first: stored questions expose stable question_N ids' and explains when source_stage should be provided and what stale versions do. It does not explicitly name alternatives like add_questions or delete_questions, but the replacement/reorder wording makes the boundary reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_update_round_directionsSet a draft round's interviewer and candidate directionsADestructiveIdempotentInspect
Set one draft round's interviewer and/or candidate directions exactly as written — deterministic, no AI generation. Provide at least one of the two direction fields. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds meaningful behavior beyond those: exact/deterministic writes, no AI generation, and concurrency protection via source_stage returning 409 when stale. It does not explicitly state that existing directions are overwritten, but 'set exactly as written' strongly 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?
The description is three short sentences with no filler. It front-loads the core action and determinism guarantee, then adds the key preconditions and concurrency behavior in the remaining sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schemaainer, the description covers the essential agent-facing aspects: what is set, how it is set, at least one field requirement, and stale-source handling. It does not fully spell out whether omitting one direction field preserves or clears the existing value, but the 'and/or' wording plus optional schema fields make preservation the reasonable reading.
Complex tools with many parameters or behaviors need more documentation. 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 useful semantics for the direction fields and source_stage, including 'at least one' and stale 409 behavior. However, it does not explain round_id, resource, or the action envelope, leaving some parameter meaning to the schema's structural 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 names a specific verb and resource: 'Set one draft round's interviewer and/or candidate directions exactly as written.' It also distinguishes itself from AI-generation siblings by stating 'deterministic, no AI generation,' making tool selection unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: when directions should be set exactly as written and not generated by AI. It also defines preconditions like providing at least one direction field and the stale-source 409 behavior. It does not explicitly name an alternative tool, but the deterministic vs. generative contrast strongly implies 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.
yardstick_interview_plan_drafts_update_roundsRewrite or reorder draft interview roundsADestructiveIdempotentInspect
Replace draft interview rounds by id and/or reorder them with order (a complete permutation of resulting ids) — deterministic, no AI generation. A round updated in place keeps its id, so its questions and directions are preserved (not pruned). Optional source_stage {stage: interview_sequence, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only convey destructiveHint and idempotentHint, but the description adds valuable behavioral detail: rounds updated in place keep their id and preserve questions/directions, order must be a complete permutation, and source_stage returns 409 when stale. This meaningfully qualifies the destructive hint and exposes concurrency 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?
Three sentences with no filler. The core operation is front-loaded, then the most important behavioral consequences (preservation, determinism, stale check) follow compactly. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and low schema coverage, the description covers the major pitfalls: replacement semantics, ordering constraints, child-data preservation, and optimistic concurrency. It does not explicitly state the return value or whether at least one of items/order is required, but the 'and/or' phrasing and schema structure partially address this.
Complex tools with many parameters or behaviors need more documentation. 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 carries the burden of explaining parameters, and it compensates well for the trickiest ones: id ('by id'), order ('complete permutation of resulting ids'), and source_stage ('returns 409 when stale'). It does not explain the many item subfields or the action/resource wrapper, but those are largely self-evident or constrained by 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 opens with a specific verb and resource: 'Replace draft interview rounds by id and/or reorder them with order', making the tool's function immediately clear. It also distinguishes itself from sibling generation tools with 'deterministic, no AI generation', so an agent can tell this apart from generate_rounds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use: deterministic editing and reordering rather than AI generation, and it notes that updating in place preserves questions and directions – implying this is preferable to delete-and-recreate flows. However, it does not explicitly name sibling alternatives like add_rounds or delete_rounds or state when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_update_skillsRewrite or reorder draft job skillsADestructiveIdempotentInspect
Replace draft job skills by id and/or reorder them with order (a complete permutation of resulting ids) — deterministic, no AI generation. Optional source_stage {stage: skills, version} returns 409 when stale.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint, readOnlyHint, idempotentHint, and openWorldHint, so the description only needs to add behavioral context beyond that. It adds useful details: no AI generation, deterministic behavior, order must be a complete permutation, and source_stage returns 409 when stale. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense, front-loaded sentences communicate the operation, key constraints, determinism, and error behavior without fluff. Every clause adds information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a mutation tool with strong annotations: it explains the operation, ordering constraint, deterministic behavior, and stale-version handling. No output schema exists, so return-value documentation is not required, and the remaining gaps—such as explicit sibling routing or per-field semantics—are 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 description coverage is 0%, so the description carries the burden of explaining parameter meaning. It clarifies items (replace by id), order (complete permutation of resulting ids), and source_stage (stale-version conflict). It does not explain every individual item field or top-level action/resource constants, but those are structurally evident from 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 states a specific verb and resource: replace draft job skills by id and/or reorder them with an order array. It distinguishes this from sibling add/delete/clear/generate skills tools, especially by adding 'deterministic, no AI generation' to contrast with generation-based 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 conveys that this tool is for manual, deterministic rewriting or reordering of draft skills, which implies it is the edit operation rather than add/delete/generate. It does not explicitly name those sibling alternatives or state when not to use it, but the context is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plan_drafts_validateCheck an interview plan draft for problemsBIdempotentInspect
Validate an interview-plan draft without publishing it.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the behavioral detail that it does not publish, which is not fully captured by annotations (readOnlyHint is false, so the tool might mutate something). However, it doesn't clarify whether validation has side effects or what happens beyond returning results. IdempotentHint and destructiveHint are already present, but the description contributes the non-publishing aspect.
Agents need to know what a tool does to the 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 conveys the core purpose efficiently. It has no filler and is easy to parse, though it is sparse on 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 validation tool with no output schema, the description should clarify what problems are checked, what the response format is, and how to interpret warnings or errors. None of this is provided. The tool is more complex than the description suggests, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the parameters (input, action, resource, request_id). The agent must rely solely on the schema, which is minimal. 'include_warnings' is self-descriptive but not addressed in the description. The tool description fails to compensate for the 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 clearly states the action ('Validate') and the resource ('interview-plan draft'), and the phrase 'without publishing it' distinguishes it from publish operations. This is unambiguous and immediately identifiable among the many draft-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 implies this is a pre-publish check but does not explicitly state when to use it versus alternatives like publish_preview or other validation tools. No mention of scenarios or exclusions leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_archiveArchive an interview planADestructiveIdempotentInspect
Archive one interview plan. Already-archived plans succeed without a write. A plan still attached to a job is refused — detach it from the job first.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No | ||
| interview_plan_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by disclosing that archiving an already-archived plan is a no-op (no write), and that plans attached to a job are refused. This is valuable behavioral context since the annotations only provide idempotentHint and destructiveHint. The contradiction check: annotations say destructiveHint=true, description does not contradict.
Agents need to know what a tool does to the 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 action, and every sentence provides essential information. No fluff at all.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (simple archive operation), the description covers the key edge cases (idempotent success, job attachment restriction). No output schema exists, but that's fine for an archive action. The description is sufficient for an agent to decide and 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 has 3 parameters, but the description doesn't explain them beyond the main required one. Since schema description coverage is 0%, the description adds minimal value for parameters like request_id and idempotency_key — but these are probably standard and may be inferred from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (archive), the resource (interview plan), and the primary behavior. It distinguishes from siblings like unarchive and modify_active by focusing on the archive action, making it easy for an agent to identify the correct tool among the many interview plan 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 when to use this tool — when you need to archive a plan, and explicitly notes the condition that blocks archiving (plan still attached to a job) and how to resolve it. It does not explicitly reference sibling alternatives like unarchive, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_listList published interview plansARead-onlyIdempotentInspect
List published interview plans, newest first. Optional job_id narrows the list to one job and takes a job_ public display id. Use this to find an interview plan id when you only hold a job id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| job_id | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context by stating the ordering ('newest first') and that job_id takes a 'job_ public display id', which is useful beyond the schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler, front-loading the core verb and resource. Every sentence adds either purpose, parameter semantics, or usage guidance, and it is appropriately sized for 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?
The description covers the primary use case and key parameter, but it does not mention pagination behavior (starting_after) or the purpose of request_id. With no output schema, the description could more fully explain the list's paging contract, though annotations cover the read/safety aspects.
Complex tools with many parameters or behaviors need more documentation. 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 explains job_id's behavior and format, but leaves limit, starting_after, and request_id unexplained, particularly the pagination semantics of starting_after. Given 4 parameters and only one explained, the compensation 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 states a specific verb and resource ('List published interview plans') and adds ordering ('newest first'). It implicitly distinguishes from sibling draft tools by specifying 'published', and provides a concrete use case for locating an interview plan ID from a job 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?
The description gives a clear context for when to use the tool: 'Use this to find an interview plan id when you only hold a job id.' It also explains the optional job_id filtering, but it does not explicitly name alternative sibling tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_modify_active_bindConfirm and edit a live interview planBDestructiveIdempotentInspect
Bind an already-previewed interview-plan active modification with explicit approval metadata and matching idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| binding | Yes | ||
| resource | No | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the description does not need to repeat those. It adds useful workflow constraints (prior preview, explicit approval, matching idempotency key), but it does not describe the live-plan side effects, version-conflict behavior, 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 focused sentence with no filler and it front-loads the core action before the qualifiers. The jargon density is high, but every phrase 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 destructive, nested, six-parameter tool with no output schema and no parameter descriptions, this is too thin. It omits the preview-to-bind workflow, how to populate the binding object from preview output, error/conflict handling, and what the caller can expect in return, so an agent would still need to infer a lot from tool names and 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?
With 0% schema description coverage, the description must compensate for undocumented parameters, and it only covers part of the binding semantics. 'Approval metadata' and 'matching idempotency key' clarify the role of the binding object and idempotency_key, but preview_hash, approved_input_hash, resource_version_precondition, expected_*_version, resource, and request_id 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?
The description names a specific action ('bind'), a specific artifact ('interview-plan active modification'), and the workflow state ('already-previewed'), which prevents confusion with the paired preview tool. It stops short of 5 because 'bind' is domain jargon and the sentence never states plainly that this confirms/applies the change to the live plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Already-previewed' is an explicit precondition that tells the agent this is the post-preview confirmation step, and the reference to 'explicit approval metadata and matching idempotency key' further narrows when it is safe to call. It does not name the companion preview tool or give a when-not-to-use rule, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_modify_active_previewPreview editing a live interview plan (nothing changed yet)CIdempotentInspect
Preview interview-plan active-modification approval requirements only; bind fields are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | No | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description and title both describe a preview-only operation ('nothing changed yet', 'Preview ... only'), but the annotations set readOnlyHint=false. This is an annotation contradiction, making the tool's side-effect profile unclear and untrustworthy.
Agents need to know what a tool does to the 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, repetition, or unnecessary detail. The dense phrasing and jargon like 'bind fields' slightly reduces accessibility, but the structure is appropriately compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 five parameters, nested input, no output schema, and a contradictory readOnly annotation, the description omits parameter semantics, return format, and how the preview result relates to the subsequent bind call. It is far from 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?
Schema description coverage is 0%, so the description was the only place to explain draft_id, active_plan_id, approval_id, expected_plan_version, and expected_draft_version. It defines none of them, and 'bind fields are rejected' is too vague to tell the agent which parameters are bind fields versus valid preview 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 names a specific action and resource: previewing approval requirements for modifying an active interview plan. It also distinguishes itself from the bind operation by noting that bind fields are rejected, so an agent can tell this apart from the sibling bind 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 clearly frames this as the pre-bind approval-requirements preview and warns that bind fields are rejected, giving an agent a basis for choosing it over the actual modification/bind tool. However, it never explicitly names yardstick_interview_plans_modify_active_bind as the alternative when the agent is ready to apply changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_publish_bindConfirm and publish an interview planBDestructiveIdempotentInspect
Bind an already-previewed interview-plan publish with explicit approval metadata and matching idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| binding | Yes | ||
| resource | No | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds that explicit approval metadata and a matching idempotency key are required, which is useful. Yet it does not describe what changes on publish, whether the action is reversible, or any version-precondition behavior beyond the schema field names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. Every phrase earns its place: 'already-previewed', 'explicit approval metadata', and 'matching idempotency key' all communicate necessary constraints. It is appropriately sized for 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?
This is a complex operation with six parameters, nested objects, destructive semantics, and no output schema, yet the description gives almost no workflow context. It does not explain how to obtain the preview_hash, what the binding fields mean, what happens on success, or what prerequisites beyond 'already-previewed' exist. The description is not sufficient for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only vaguely references 'approval metadata' and 'matching idempotency key'. The nested binding object, draft_id, expected_draft_version, and resource fields receive no explanatory context, leaving an agent to guess their meaning and relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Bind an already-previewed interview-plan publish') and identifies the resource. The phrase 'already-previewed' distinguishes it from the preview sibling, and the title 'Confirm and publish an interview plan' reinforces the operation. It loses a point because 'bind' is domain jargon and the description does not explicitly say the plan will be published.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tool is used after a preview step by saying 'already-previewed', and it hints that an idempotency key must match. However, it does not explicitly name the preview tool as the prerequisite, nor does it state when not to use this tool or mention alternatives. The usage guidance is inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_publish_previewPreview publishing an interview plan (nothing changed yet)BIdempotentInspect
Preview interview-plan publish approval requirements only; bind fields are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| action | Yes | ||
| resource | No | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context by saying it is a preview and title says 'nothing changed yet,' which goes beyond the annotations (readOnlyHint is false, destructiveHint is false). It does not contradict the annotations because readOnlyHint false does not positively assert mutation. However, it omits details like whether any side effects occur, what the preview produces, or how approval requirements 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 very short and front-loaded: 'Preview interview-plan publish approval requirements only' immediately states the core behavior. Every phrase earns its place, and the title adds useful context. It is terse but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 five parameters including nested objects, a one-line description is insufficient. It never explains what the preview returns, how 'approval requirements' are represented, or the role of optional fields like approval_id and expected_draft_version. The tool is therefore incomplete 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%, and the description does not compensate. It alludes to 'bind fields are rejected' but never identifies which fields those are, and it gives no meaning for draft_id, approval_id, expected_draft_version, request_id, or idempotency_key. Agents are left without guidance on how to supply parameters 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 and resource: 'Preview interview-plan publish approval requirements only.' It also distinguishes itself from the binding operation by stating 'bind fields are rejected,' and the title reinforces 'nothing changed yet.' An agent can tell this from publish_bind siblings 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?
Usage is only implied: the tool is for previewing approval requirements before publishing, and 'bind fields are rejected' hints it is not for actually binding. However, it never explicitly names the alternative tool (e.g., yardstick_interview_plans_publish_bind) or states when to choose preview over bind, so guidance remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_readRead a published interview planBRead-onlyIdempotentInspect
Read one interview plan by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| interview_plan_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'public id' constraint, which is useful, but does not mention return format, potential errors, or any side effects beyond what annotations imply. It adds modest value without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no filler. It front-loads the action and resource, and includes the key identifier detail. It is appropriately minimal for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with annotations covering safety and idempotency, the description is mostly adequate. However, it does not describe the return value (the interview plan structure), and the optional request_id is left unexplained. Given the absence of an output schema, a bit more detail would improve completeness, but it's not severely lacking.
Complex tools with many parameters or behaviors need more documentation. 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 explains that interview_plan_id is a 'public id', giving that parameter meaning, but entirely omits request_id. The description does not describe parameter formats, constraints, or relationships, leaving a significant gap for the optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('interview plan'), and specifies the lookup mechanism ('by public id'). This clearly distinguishes it from list-type siblings and other plan-related tools, though it doesn't explicitly mention the 'published' aspect from the title. 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?
There is no explicit guidance on when to use this tool versus alternatives like interview_plans_list or interview_plan_drafts_read. Usage is only implied by the verb 'read' and the resource name. No conditions, exclusions, or alternative tool mentions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_set_hiring_manager_decidesSet whether the hiring manager decides a stepAIdempotentInspect
Turn on or off whether a plan step waits on the hiring manager's decision before the candidate moves on. Only workflow managers on an open job can change it.
| Name | Required | Description | Default |
|---|---|---|---|
| step_id | Yes | ||
| request_id | No | ||
| idempotency_key | No | ||
| interview_plan_id | Yes | ||
| hiring_manager_decides | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds non-obvious context the annotations cannot carry: the authorization requirement (workflow manager on an open job) and the behavioral meaning of the flag (the step gates candidate progression on the hiring manager's decision). It doesn't cover failure modes or whether existing/in-flight sessions are affected.
Agents need to know what a tool does to the 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 effect is front-loaded and the permission caveat follows. 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 whose annotations cover safety and idempotency, the description is adequate on effect and permissions, but with 5 parameters at 0% schema coverage and no output schema, the lack of any parameter-level detail (identifiers, idempotency key usage) leaves gaps an agent would need to guess at.
Complex tools with many parameters or behaviors need more documentation. 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 5 parameters, so the description must compensate and mostly does not. It conveys the meaning of the key boolean 'hiring_manager_decides' but says nothing about interview_plan_id, step_id, request_id, or idempotency_key, leaving four 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 verb+resource: toggling whether a plan step waits on the hiring manager's decision. 'Turn on or off' plus 'plan step' plus the consequence ('before the candidate moves on') makes the effect unambiguous. It does not name or differentiate itself from the many interview_plans_* siblings, 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?
It supplies one real usage condition ('Only workflow managers on an open job can change it'), which tells the agent who may call it, but gives no routing guidance relative to alternatives such as modify_active_bind or publish_bind, and no statement of when this setting is relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_plans_unarchiveRestore an archived interview planAIdempotentInspect
Restore one archived interview plan. Plans that are already live succeed without a write. If the plan's job has since acquired another live plan, the restore is refused and names that plan.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No | ||
| interview_plan_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false. The description adds valuable specifics beyond those: already-live plans succeed without a write (elaborating idempotency) and a refusal case where the job has another live plan, naming it. This is genuinely useful behavioral context not present in structured data.
Agents need to know what a tool does to the 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 in the first sentence, followed by two edge-case behaviors 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?
For a simple mutation tool with annotations covering idempotency and safety, the description covers the key conflict scenario and idempotent behavior. It lacks an explicit statement of return values or error format, but with no output schema and low complexity, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters, so the description must compensate. It does not mention any parameter semantics. interview_plan_id is inferable from its name, but request_id and idempotency_key are entirely unexplained. The description fails to fill the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Restore one archived interview plan' – a specific verb and resource. Distinguishes from sibling tools like archive, publish, and modify, with no ambiguity about what operation it performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'restore' and the sibling context, but there is no explicit statement of when to use this tool versus alternatives, nor any when-not guidance. The behavioral caveats (already-live success, conflict refusal) help with decisions but do not explicitly route away from other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_available_interviewers_listList members assignable as interviewersARead-onlyIdempotentInspect
List organization members who can be assigned as interviewers, newest membership first. Use this to pick a usr_ public display id before assigning an interviewer.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavior: 'newest membership first' and the fact that it lists only assignable members, which goes beyond the annotations. It does not mention pagination or request_id semantics, but the read-only context lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. The core purpose is front-loaded, and the usage hint is appended clearly. Every word earns its place, and it is appropriately terse for a list endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, ordering, and a usage workflow, but it does not explain how to use the pagination/limit parameters or what `starting_after` expects. Since the tool has no output schema and a very lean parameter set, the description should at least mention that `limit` and `starting_after` control paging. Without that, an agent may not correctly invoke pagination, making this only partially 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 compensate for parameter meaning. It does not explain `limit`, `starting_after`, or `request_id`. While 'newest membership first' implies ordering for cursor pagination, it does not state what values `starting_after` accepts (e.g., member ID) or what `request_id` is for. The description adds minimal parameter-level meaning and leaves the agent to infer from parameter 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 states a specific verb and resource: 'List organization members who can be assigned as interviewers'. It clarifies the return scope ('organization members', 'assignable as interviewers') and ordering ('newest membership first'), and the usage note ('Use this to pick a usr_ public display id before assigning an interviewer') distinguishes it from related list tools like yardstick_interview_sessions_interviewers_list. No ambiguity about what is listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a clear context for when to use the tool: 'Use this to pick a usr_ public display id before assigning an interviewer.' This is an explicit workflow trigger. However, it does not explicitly name alternatives or provide when-not-to-use guidance; the differentiation from sibling tools like interview_sessions_interviewers_list is left implicit via the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_cancelCancel a scheduled interviewBDestructiveIdempotentInspect
Cancel a scheduled interview session, releasing the provider booking and invalidating its scheduling links.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| request_id | No | ||
| skip_provider | No | ||
| idempotency_key | No | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and idempotent, and the description adds value by specifying the exact side effects: "releasing the provider booking and invalidating its scheduling links." It does not cover consequences like notifications or whether cancellation is reversible, so it stops short of a 5.
Agents need to know what a tool does to the 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 action comes first, and the behavioral effects follow in a compact clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 five undocumented parameters and no output schema, the description is too thin. It omits what reason, skip_provider, request_id, and idempotency_key control, and provides no guidance on expected outcomes or response behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description explains none of the five parameters. Only interview_session_id is inferable from the tool name; reason, request_id, skip_provider, and idempotency_key remain 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 clearly states a specific action and resource: "Cancel a scheduled interview session," and adds concrete effects. It is distinct from the sibling session tools (start, complete, read, scorecard_submit) by the unique verb, but it does not explicitly name or differentiate those 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?
Usage is implied by "Cancel a scheduled interview session," suggesting this is for sessions that have not yet run. However, there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as completing or starting a session instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_completeComplete an interviewCDestructiveIdempotentInspect
Complete an interview session for an explicit interviewer.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No | ||
| interviewer_user_id | Yes | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and idempotentHint=true, so the safety profile is partly known. However, the description adds no behavioral context beyond the word 'Complete'—it does not say what changes, whether the action is reversible, 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 short and front-loaded, with no filler words. However, it is arguably under-specified for a destructive operation with four parameters, so conciseness comes at the cost of necessary 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?
There is no output schema, no parameter descriptions, and the tool is marked destructive. The description does not explain return values, side effects, required parameters, or idempotency semantics, leaving an agent without enough context to invoke the tool 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%, and the description only hints at interviewer_user_id through 'explicit interviewer'. interview_session_id, request_id, and idempotency_key are left entirely unexplained, so 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 names a specific action ('Complete') and resource ('interview session'), with a reference to an explicit interviewer. This is reasonably distinct from sibling actions like start or cancel, though it does not clarify what 'complete' means as a state transition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 offers no guidance on when to use this tool versus siblings such as yardstick_interview_sessions_cancel, yardstick_interview_sessions_start, or yardstick_interview_sessions_scorecard_submit. It only implies a target interviewer, not a decision rule or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_feedback_readRead your interview feedbackBRead-onlyIdempotentInspect
Read your assigned interview questions, scorecard ratings and question notes.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile fully (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description's only added context is the 'your assigned' authorization scoping — it implies the caller sees only their own feedback, which is useful but not elaborated (no mention of what happens if the session is incomplete or if the caller isn't assigned).
Agents need to know what a tool does to the 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 front-loaded sentence with zero filler, listing the three returned artifacts. Appropriately sized for a simple read, though it is too terse to carry any of the guidance the other dimensions need.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, and the description does partially compensate by enumerating what comes back (questions, ratings, notes). However, with a required session ID and zero parameter documentation, the definition leaves a gap an agent must close by inspecting 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%: neither interview_session_id nor request_id is documented anywhere, and the description never mentions them. The single sentence gives no hint that a session identifier is required to retrieve feedback, so the agent must guess from the required array alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and names the concrete resources returned: assigned interview questions, scorecard ratings, question notes. The word 'your' scopes it to the calling interviewer, which separates it from yardstick_interview_sessions_read and scorecard_submit, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance, and in a catalog of ~200 tools with near-identical prefixes (interview_sessions_read, interviewers_list, question_notes_save) no routing signal is given. The agent must infer from the name alone that this is the interviewer's own-feedback view.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_interviewers_assignAssign an interviewer to an interviewBIdempotentInspect
Assign an interviewer to an interview session. Email notification is attempted by default; set notify_interviewer to false to opt out. The response reports the safe interviewer_email outcome.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No | ||
| notify_interviewer | No | ||
| interviewer_user_id | Yes | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavior beyond them: the default email notification, the opt-out switch, and that the response reports the safe interviewer_email outcome. It stops short of stating what happens if the interviewer is already assigned or how failures surface.
Agents need to know what a tool does to the 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 tight sentences with the core action front-loaded and the notification default stated early. Nothing is padded, though the final sentence about the response outcome is slightly terse given no output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no output schema, the description covers the notification behavior and hints at the response, and annotations cover safety/idempotency. But the undocumented parameters and the unspecified already-assigned/failure behavior leave gaps an agent would need 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 the description carries the full burden, yet it only clarifies notify_interviewer. The four other parameters (interview_session_id, interviewer_user_id, request_id, idempotency_key) get no explanation of format, idempotency semantics, or correlation use.
Input schemas describe structure but not intent. Descriptions should explain 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 (assign) and both resources (interviewer, interview session), so the operation is immediately clear. It does not explicitly contrast with the close sibling interview_sessions_interviewers_unassign, but the assign/unassign verbs are self-differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 one useful piece of conditional guidance: email notification fires by default and notify_interviewer=false opts out. However, it offers no when-to-use-vs-alternatives guidance (e.g., versus unassign or the available-interviewers list) and no prerequisites such as required permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_interviewers_listList interviewers on an interviewBRead-onlyIdempotentInspect
List interviewers assigned to an interview session.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds the scoping detail that these are interviewers 'assigned to an interview session' but does not disclose any additional behavioral traits such as pagination, ordering, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the action and scope directly, making it an efficient and well-structured definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required param, no output schema), and the description covers the core purpose adequately. However, the missing explanation of 'request_id' and lack of return-value expectations leave gaps for an agent trying to invoke it 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 provides no explanation of either parameter. 'request_id' is entirely unexplained, and 'interview_session_id' is only meaningful by name. The description fails to compensate for the 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 uses a specific verb ('List') and resource ('interviewers assigned to an interview session'). The word 'assigned' clearly distinguishes this from the sibling 'available_interviewers_list' tool, so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need the interviewers assigned to a session) but provides no explicit guidance on when to use this versus the similar 'available_interviewers_list' or other sibling tools. No when-not or alternative routing is given, so it relies on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_interviewers_unassignRemove an interviewer from an interviewBDestructiveIdempotentInspect
Unassign an interviewer from an interview session.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No | ||
| interviewer_user_id | Yes | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with annotations (destructiveHint=true, idempotentHint=true) but adds no extra behavioral context. It does not explain consequences such as whether removing the interviewer affects scheduling, availability, or the interview plan. While the annotation flags destructiveness, the description could clarify the scope of the removal but does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no wasted words. It is appropriately sized for the action and gets straight to the point, making it 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?
The definition lacks essential context for a destructive operation. It does not mention return values (though no output schema exists), side effects, reversibility, or how it differs from cancelling the session. Given four parameters with no schema descriptions, the description is too terse to fully equip an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter explanations. The required parameters (interview_session_id, interviewer_user_id) are self-explanatory, but optional ones like idempotency_key and request_id are left undefined. With zero coverage, the description should at least mention the purpose of key parameters, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unassign an interviewer from an interview session' clearly states the specific verb (unassign) and resource (interview session), making it immediately distinguishable from its sibling 'yardstick_interview_sessions_interviewers_assign'. The title reinforces this by naming the exact action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. For instance, it does not mention that this is the inverse of the assign tool, nor does it differentiate from other session actions like cancel or complete. The agent must infer usage from the name alone, which is insufficient for complex workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_question_notes_saveSave your question noteCDestructiveIdempotentInspect
Save your note for an existing interview question, including completed interviews.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| request_id | No | ||
| question_id | Yes | ||
| follow_up_used | No | ||
| idempotency_key | No | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, openWorldHint=false and destructiveHint=true, so the safety profile is covered. The description adds the useful fact that completed interviews are still writable. However, it never explains why the call is flagged destructive — most likely it overwrites an existing note — which is exactly the behavior an agent needs to know before re-saving.
Agents need to know what a tool does to the 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 short sentence with the core action front-loaded and zero filler. It is efficient, though the brevity comes at the cost of the parameter and overwrite detail noted 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, 6-parameter mutation with no output schema and no schema descriptions, the description is too thin. An agent cannot tell what gets overwritten, what request_id/idempotency_key do, or what a successful save 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% across 6 parameters, so the description must compensate and does not. It alludes to 'note' and 'question' but says nothing about interview_session_id, request_id, idempotency_key, or follow_up_used, leaving four parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Save') and resource ('your note for an existing interview question'), which is enough to distinguish it from read-oriented siblings like feedback_read or scorecard_submit. It does not explicitly name a sibling it is not, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-relevant signal is 'including completed interviews', which clarifies a state constraint but not when to choose this over alternatives such as the scorecard or feedback tools. There is no when/when-not guidance and no mention of prerequisites like the session having to exist or be assigned to the caller.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_readRead an interviewBRead-onlyIdempotentInspect
Read one interview session by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructiveHint, so the safety burden is mostly covered. The description adds the 'by public id' contextual detail, but does not disclose response shape, error behavior, or 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?
A single front-loaded sentence with no filler; every word contributes meaning. It is appropriately sized for a simple read 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 tool is simple and the annotations cover its safety profile, so an agent can call it with the required id. However, with no output schema and no mention of what the returned interview session contains, the description is minimally sufficient rather than 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 only clarifies that interview_session_id is a public id. It does not explain request_id or the expected format of the public identifier, leaving a 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?
States a precise verb ('Read'), resource ('one interview session'), and identifier type ('public id'), which differentiates it from list/cancel/start siblings. An agent can tell this is a single-record fetch rather than a state-changing or 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 on when to choose this over related tools such as interview_sessions_list or interview_sessions_readiness. The only selection cue is the tool name and tacit context, not an explicit when-to-use or alternative statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_readinessCheck interview scheduling readinessCIdempotentInspect
Read interview-session scheduling readiness.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry idempotentHint=true and destructiveHint=false, and the description adds no behavioral detail beyond those. Notably readOnlyHint=false is left unexplained: the 'Read' phrasing gives no hint about possible side effects, what the readiness computation involves, or what state changes may 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?
Five words with zero filler; the action and resource are front-loaded. Every word earns its place, though the brevity comes at the cost of semantic richness 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?
With no output schema, the description should explain what the readiness result means or how to respond to it, but it says nothing about return semantics, readiness conditions, or follow-up actions. For a simple 2-param tool the complexity is low, but the missing meaning of the result is a significant 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%, yet the description adds nothing about either parameter. interview_session_id is inferable from the tool name, but request_id's purpose is entirely opaque, and 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 names a specific verb ('Read') and resource ('interview-session scheduling readiness'), and the readiness concept distinguishes it from sibling session tools like cancel, complete, start, and read. However, 'readiness' is never defined, so an agent understands the general area but not the precise meaning of the result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to call this tool versus alternatives such as yardstick_interview_sessions_read or yardstick_interview_sessions_available_interviewers_list. Usage is only implied by the name; no prerequisites, sequencing advice, 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.
yardstick_interview_sessions_scheduling_link_generateGenerate a candidate scheduling linkCDestructiveInspect
Generate a scheduling link for an interview session.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds almost no behavioral context beyond the tool's action. It does not disclose whether generating the link sends a notification, persists a record, requires permissions, or what the returned link looks like. The destructiveHint=true annotation suggests side effects, but the description does not explain or justify this, and no contradiction is present because it never claims to be non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler, and it front-loads the action and object. It could be more informative, but for what it contains, it is concise 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?
Although the tool is simple, the complete absence of output schema, return-value details, side-effect disclosure, and parameter semantics leaves an agent under-informed. The presence of idempotency_key and request_id suggests meaningful call-context requirements that the description does not address.
Complex tools with many parameters or behaviors need more documentation. 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 the overall action. It does not clarify the meaning or required format of interview_session_id, nor the purpose of request_id and idempotency_key. The parameter names provide some self-evident hints, but the optional idempotency parameters 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?
The description uses a specific verb ('Generate') and names a concrete resource ('a scheduling link for an interview session'). This clearly distinguishes it from the many sibling interview-session tools like read, cancel, start, or complete, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor does it mention prerequisites such as requiring an existing interview session, whether scheduling must be enabled, or whether the link is for candidates only. The agent is left to infer 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.
yardstick_interview_sessions_scorecard_remove_ratingRemove your scorecard entryADestructiveIdempotentInspect
Remove one of your own scorecard entries without changing other feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| item_type | Yes | ||
| request_id | No | ||
| idempotency_key | No | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds two genuinely useful constraints beyond the annotations: the removal is limited to the caller's own entry (authorization scope) and it explicitly does not disturb other feedback (no collateral mutation). It does not say whether removal is recoverable or what happens when the entry is absent, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the qualified scope front-loaded and no filler. It is efficient, though it is arguably too lean for a destructive five-parameter mutation, which shows up as a cost in contextual completeness 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 destructive, idempotent write with five undocumented parameters, no output schema, and no description of error or no-op behavior, the guidance is thin. The 'your own' authority constraint and non-collateral clause help, but an agent still lacks the parameter-level and precondition information needed to call this 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% across five parameters (including required interview_session_id, item_type, item_id, plus request_id and idempotency_key), and the description supplies no parameter meaning at all. It does not explain the item_type enum values or how item_id relates to the chosen type, so it fails 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 states a specific verb (Remove), a specific resource (one of your own scorecard entries), and an ownership scope that separates it from the sibling yardstick_interview_sessions_scorecard_submit. An agent can tell immediately that this deletes a single submitted entry rather than creating or reading one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'one of your own' implies the usage context (you submitted it, you may remove it), but there is no explicit when-to-use/when-not guidance and no alternative named — e.g. whether to use scorecard_submit to overwrite instead. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_scorecard_submitSubmit an interview scorecardCDestructiveIdempotentInspect
Submit an interview-session scorecard with explicit ratings.
| Name | Required | Description | Default |
|---|---|---|---|
| ratings | Yes | ||
| request_id | No | ||
| overall_notes | No | ||
| idempotency_key | No | ||
| interviewer_user_id | Yes | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and idempotentHint=true, so the safety profile is covered structurally. The description adds nothing beyond that: it never explains what a submission overwrites, whether resubmission replaces prior ratings, how the idempotency_key behaves, or what permissions are needed for a destructive write.
Agents need to know what a tool does to the 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, which is structurally clean. However, brevity here comes at the cost of substance rather than from disciplined editing, so it is minimally adequate rather than exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, idempotent mutation with a nested ratings array, six parameters, and no output schema or schema descriptions. The description should at minimum explain the ratings payload shape and idempotency/resubmission semantics; it covers neither, leaving an agent under-informed before a write.
Complex tools with many parameters or behaviors need more documentation. 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 six parameters, so the description carries the burden. It only gestures at 'explicit ratings' while saying nothing about interview_session_id, interviewer_user_id, overall_notes, request_id, or idempotency_key, nor about the rating scale (0-4) or valid item_type 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 names a specific verb and resource: submitting an interview-session scorecard, with the qualifier that ratings must be explicit. An agent can identify the action unambiguously. It does not, however, distinguish this from nearby siblings such as yardstick_interview_sessions_complete or yardstick_final_recommendation_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisites such as whether the interview session must be completed or the interviewer assigned before submitting. The phrase 'with explicit ratings' hints at required content but is not a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_interview_sessions_startStart an interviewCDestructiveIdempotentInspect
Start an interview session for an explicit interviewer.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No | ||
| interviewer_user_id | Yes | ||
| interview_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral detail beyond the action name. The annotations indicate destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating operation, but the description does not explain what state changes occur, whether the action is reversible, or what side effects starting a session may have. It does not contradict the annotations but also does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, which is good. However, it is overly terse and omits important operational context, so the brevity comes at the cost of usefulness. It earns its place but does not carry enough 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 destructive, state-changing tool with no output schema and fully undocumented parameters, this description is incomplete. An agent cannot determine what happens when the session starts, what the return value is, or how to use the idempotency fields. The annotations help with the safety profile, but the overall context is insufficient 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. It loosely maps to interview_session_id ('interview session') and interviewer_user_id ('explicit interviewer'), but it does not explain the idempotency_key, request_id, or the relationship between the required parameters. The optional idempotency-related fields remain entirely 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 and resource: 'Start an interview session' for an 'explicit interviewer.' It conveys the core action and distinguishes this tool from siblings like cancel, complete, or read. However, the phrase 'explicit interviewer' is somewhat vague and would benefit from clarifying why the interviewer must be specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. It does not mention prerequisites like session readiness, whether the session must already be scheduled, or what conditions make 'start' appropriate. The description also does not exclude cases where a sibling like interview_sessions_complete or interview_sessions_cancel would be more suitable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_job_postings_archive_bindConfirm and archive a job postingBDestructiveIdempotentInspect
Bind an already-previewed job-posting archive with explicit approval metadata and matching idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| binding | Yes | ||
| request_id | No | ||
| job_posting_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds meaningful behavioral context by requiring 'explicit approval metadata' and a 'matching idempotency key,' which are not captured in the annotations. It does not contradict the annotations and supplements them with the safety/confirmation 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 sentence and front-loads the key action ('Bind an already-previewed job-posting archive'). It is concise and contains no filler, but the dense terminology ('approval metadata', 'matching idempotency key') slightly reduces immediate readability. Overall, it is appropriately sized and structured 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 complexity of the tool (nested 'binding' object, 4 parameters, no output schema, and 0% schema-description coverage), the one-sentence description is inadequate. It does not explain how the binding object is structured, how the idempotency key should match, or what the result of binding looks like. An agent would need to infer most details from the schema alone, which lacks descriptions.
Complex tools with many parameters or behaviors need more documentation. 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 only refers vaguely to 'approval metadata and matching idempotency key' without explaining the individual parameters (preview_hash, approved_action_key, approved_input_hash, resource_version_precondition) or the nested binding object. This is insufficient for an agent to correctly construct the 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 uses a specific verb ('bind') and resource ('job-posting archive') and adds the qualifier 'already-previewed,' which distinguishes it from the sibling preview tool. The title 'Confirm and archive a job posting' further clarifies the action, though the use of 'bind' and 'approval metadata' is somewhat technical. It clearly identifies this as the post-preview confirmation/commit 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 phrase 'already-previewed' implies the tool must follow yardstick_job_postings_archive_preview, but it does not explicitly name the sibling or state when not to use this tool. There is no mention of alternatives or exclusions, so the guidance is implied rather than explicit. This meets the threshold for 'implied usage' but falls short of clear 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.
yardstick_job_postings_archive_previewPreview archiving a job posting (nothing changed yet)CIdempotentInspect
Preview job-posting archive approval requirements only; bind fields are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| job_posting_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description and title claim 'preview only' and 'nothing changed yet', implying read-only behavior, but the annotations set readOnlyHint=false. This is a direct contradiction. The description also fails to explain side effects, output, or error behavior beyond 'bind fields are rejected'.
Agents need to know what a tool does to the 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 purpose, but the phrase 'bind fields are rejected' is cryptic and could be clearer. It is concise but under-specified for the information needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 explanation of return values, the description leaves the agent guessing what the preview returns. It also does not compensate for the 0% parameter coverage or clarify the contradictory annotation behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning for request_id, job_posting_id, or idempotency_key. 'Bind fields' is mentioned but never mapped to specific parameters, leaving the agent without any parameter 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 clearly states it previews job-posting archive approval requirements, and the phrase 'only' plus 'bind fields are rejected' helps differentiate it from the actual archive/bind operation. The resource and action are specific, though 'bind fields' is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 not the binding operation but does not explicitly name the alternative (archive_bind) or state when to use this tool versus that one. It also provides no prerequisites or conditions for when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_job_postings_createCreate a draft job postingCInspect
Create a draft job posting through the public Yardstick API.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| title | Yes | ||
| location | No | ||
| department | No | ||
| request_id | No | ||
| salary_max | No | ||
| salary_min | No | ||
| description | No | ||
| requirements | No | ||
| location_type | No | ||
| salary_display | No | ||
| idempotency_key | No | ||
| salary_currency | No | ||
| custom_questions | No | ||
| location_country | No | Assigned ISO 3166-1 alpha-2 country code. | |
| interview_plan_id | Yes | Published interview plan id (ipd_...) returned by `interview-plans publish` — not an interview-plan draft id. The plan must already be attached to a Job via `jobs attach-artifact`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds one useful behavioral trait: it creates a draft, implying the posting is not published yet. Annotations already convey that this is not read-only and not destructive, so the bar is lower, but the description does not disclose validation behavior, response shape, or side effects beyond creating the draft.
Agents need to know what a tool does to the 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 it mostly restates the title, and 'through the public Yardstick API' is filler that provides no agent value. It front-loads the action but does not use its limited space to convey useful information beyond the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter create operation with no output schema and very low schema coverage, this one-sentence description is inadequate. It omits prerequisites, sequencing with interview plan publishing, idempotency behavior, and what the agent should expect after a successful 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 only 13%, and the description says nothing about any of the 16 parameters. It does not compensate for the sparse schema by explaining required fields like slug, interview_plan_id, salary fields, or custom_questions structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create') and resource ('draft job posting'), and the 'draft' qualifier clearly distinguishes this create endpoint from publish, update, validate, or read siblings. The purpose is immediately understandable 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?
No guidance is given about when to use this tool versus alternatives such as job_postings_update, job_postings_publish, or job_postings_validate. Prerequisites like needing a published interview plan already attached to a job are not mentioned in the description, and 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.
yardstick_job_postings_listList job postingsBRead-onlyIdempotentInspect
List job postings visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds the important behavior that results are filtered by the current principal's visibility, which is useful context. It doesn't disclose pagination or ordering, but the annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the action and scope with no filler. It is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and visibility scope, but omits explicit pagination semantics and return format. With no output schema and 0% parameter descriptions, an agent may need additional context to use the tool fully, though the simple read-only nature lessens the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description says nothing about limit, starting_after, or request_id. Agents receive no hints about pagination cursors, limits, or request correlation beyond the parameter names themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('job postings') with a meaningful scope ('visible to the current principal'). This distinguishes it from create, read, update, publish, and archive siblings without needing 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?
The scoping phrase implies this is the tool for browsing postings the caller can see, but there is no explicit when-to-use guidance or mention of alternatives like read for a single posting. Usage is implied by the name and title rather than explicitly directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_job_postings_publish_bindConfirm and publish a job postingADestructiveIdempotentInspect
Bind an already-previewed job-posting publish with explicit approval metadata and matching idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| binding | Yes | ||
| request_id | No | ||
| job_posting_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool destructive and idempotent. The description adds useful operational context beyond that: it requires explicit approval metadata and a matching idempotency key, and it operates on an already-previewed publish. It does not detail downstream side effects, but the destructiveHint covers the main risk.
Agents need to know what a tool does to the 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 no filler. It front-loads the action and immediately communicates the two key constraints: prior preview and approval metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, nested-object mutation tool with no parameter descriptions and no output schema. The description explains neither where the approval metadata fields come from (presumably the preview response) nor what happens on mismatched idempotency keys or version preconditions. An agent would need substantial prior knowledge of the bind/preview protocol to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It broadly groups the binding object as 'explicit approval metadata' and mentions a 'matching idempotency key,' but it does not explain the purpose of preview_hash, approved_input_hash, approved_action_key, or resource_version_precondition. An agent would still be guessing about how to populate the nested binding object 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 ('Bind'), a resource ('an already-previewed job-posting publish'), and the distinctive context of explicit approval metadata. It clearly distinguishes this bind step from the sibling publish_preview tool and the archive_bind pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Already-previewed' clearly signals that this tool is used after a publish preview, and 'matching idempotency key' indicates a key precondition. It does not explicitly name the alternative (publish_preview) or state 'do not call without a preview,' but the context is strong enough for an agent to identify the intended flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_job_postings_publish_previewPreview publishing a job posting (nothing changed yet)AIdempotentInspect
Preview job-posting publish approval requirements only; bind fields are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| job_posting_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: it is preview-only, returns or checks approval requirements, and rejects bind fields. Combined with idempotentHint=true and destructiveHint=false, the agent gets a clear picture that this is a non-destructive, idempotent preview operation. It does not disclose output shape, but the preview scope mitigates that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every clause earns its place: it states the purpose ('preview approval requirements'), the limitation ('only'), and the key rejection behavior ('bind fields are rejected').
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 preview tool with one required parameter and no output schema, the description covers the essential behavior and the key validation constraint. It could be slightly richer in explaining what 'approval requirements' means or what the response contains, but the tool is simple enough that an agent can invoke it correctly from this 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 needed to compensate for the three parameters, but it provides no details about job_posting_id, request_id, or idempotency_key. The only parameter-related hint, 'bind fields are rejected,' refers to fields not present in the schema. Property names are somewhat self-explanatory, but the description itself adds no parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-object pair, 'Preview job-posting publish approval requirements only,' and explicitly contrasts itself with binding via 'bind fields are rejected.' This clearly separates it from sibling publish_bind tools and states what the tool does and does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 signals when to use this tool: to preview approval requirements rather than to actually bind or publish. The explicit 'bind fields are rejected' warning is an effective exclusion that prevents an agent from using this as a publish/bind tool, though it does not name the preferred alternative tool explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_job_postings_readRead a job postingARead-onlyIdempotentInspect
Read one job posting by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| job_posting_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds only the scoping fact that it reads one posting by public id, and does not disclose return behavior, error cases, or permissions; still, it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the operation and its key identifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 adequate for a simple read operation, especially with safety annotations present. However, because there is no output schema, the description does not explain what is returned, and error/not-found behavior and request_id semantics are also left 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?
With 0% schema description coverage, the description partially compensates by explaining that job_posting_id is a public id and that exactly one posting is read. However, the optional request_id parameter is not addressed, leaving its purpose and format 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 states a specific action ('Read'), a specific resource ('job posting'), and the accessor ('by public id'). This clearly distinguishes it from sibling operations like job_postings_list, job_postings_create, and job_postings_update, and from generic read tools on other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no exclusions, and no mention of prerequisites such as having a public id or using list to obtain one. Usage is only implied by the verb 'read'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_job_postings_updateUpdate a job postingBDestructiveIdempotentInspect
Update a job posting with schema-bound public API fields.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | ||
| title | No | ||
| location | No | ||
| department | No | ||
| request_id | No | ||
| salary_max | No | ||
| salary_min | No | ||
| description | No | ||
| requirements | No | ||
| location_type | No | ||
| job_posting_id | Yes | ||
| salary_display | No | ||
| idempotency_key | No | ||
| salary_currency | No | ||
| custom_questions | No | ||
| location_country | No | Assigned ISO 3166-1 alpha-2 country code. | |
| interview_plan_id | No | Published interview plan id (ipd_...) returned by `interview-plans publish` — not an interview-plan draft id. The plan must already be attached to a Job via `jobs attach-artifact`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, covering the basic behavioral profile. The description adds the phrase 'schema-bound public API fields', which implies that only fields present in the schema are updatable, but it does not clarify whether it is a partial or full update, nor does it mention any side effects beyond the annotations. Since annotations carry most of the burden, this is an adequate but not enriching addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of moderate length, which is concise and front-loads the core action ('Update a job posting'). It avoids redundancy and gets to the point quickly. However, its brevity borders on under-specification, as it sacrifices detail for conciseness, but it is appropriately sized for a simple update tool despite the underlying 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 high complexity (17 parameters, low schema coverage, no output schema, and no description of return values or error handling), the description is severely incomplete. It does not explain the update semantics (partial vs. full overwrite), what fields are actually updatable, any prerequisites, or what the response contains. The description leaves the agent guessing about crucial details that are not covered by annotations or schema. For a tool this complex, far 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?
Schema description coverage is only 12%, meaning the vast majority of the 17 parameters are undocumented in the schema. The description does not compensate for this gap; it says nothing about what fields like slug, title, location_type, salary_display, or custom_questions mean or how they interact. The only field descriptions in the schema are for location_country and interview_plan_id, leaving the agent without semantic guidance for the other parameters. The description fails to add any parameter-level clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 specific verb 'update' and the resource 'job posting', which clearly distinguishes it from sibling tools like create, archive, publish, and read. The phrase 'schema-bound public API fields' also hints at the scope of updatable fields, though it could be more explicit about which fields are included. Overall, the purpose is unambiguous and easily separable from other job posting 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 no guidance on when to use this tool versus alternatives such as yardstick_job_postings_create, publish, or archive. It does not mention that create should be used for new postings or that publish/archive handle lifecycle changes. The usage context is implied by the name but not explicitly stated, 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.
yardstick_job_postings_validateCheck a draft job posting for problemsBIdempotentInspect
Validate a draft job posting without mutating it.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| job_posting_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'without mutating it,' but the annotations declare readOnlyHint: false, which suggests the tool may mutate state. This is a direct annotation contradiction. The description also does not disclose what validation checks are performed, what side effects may occur, or what the output 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, front-loaded sentence with no filler. It communicates the core action and a meaningful constraint. However, it is so terse that it sacrifices useful context that could be 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 there is no output schema, the description should explain what the validation returns or what 'problems' means, but it does not. The tool is low-complexity, but the annotation contradiction and missing return semantics leave the agent under-informed about expected 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?
The input schema has no property descriptions (0% coverage) and the description adds no parameter-level detail. 'job_posting_id' is fairly self-explanatory from its name, but 'request_id' is entirely ambiguous and its purpose is left 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 a specific action ('Validate') and a specific resource ('a draft job posting'), and explicitly scopes it as non-mutating. This distinguishes it from job posting create/update/publish tools, and the title reinforces the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used for checking a draft before making changes ('without mutating it'), but it does not explicitly state when to use this versus alternatives like publish_preview, read, or update. No exclusions or alternative tool mentions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_jobs_archiveArchive a jobADestructiveIdempotentInspect
Archive one Job row only; linked job postings, applications, and interview plans are not mutated.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds crucial behavioral detail: the mutation is limited to the job row and does not propagate to linked postings, applications, or interview plans. This precise scope disclosure goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the primary action and immediately clarifies the scope. No wasted words; 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?
The description, combined with the annotations (destructive, idempotent, not read-only), provides a clear picture of the tool's behavior and side effects. The absence of an output schema means return-value explanation is unnecessary. However, the lack of parameter documentation is a minor gap, though the parameters appear standard and the operation is simple.
Complex tools with many parameters or behaviors need more documentation. 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 any of the three parameters (job_id, request_id, idempotency_key). The agent is left with only parameter names and types, with no guidance on required values or optional semantics. 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 states a specific verb ('Archive') and resource ('one Job row only'), and explicitly delimits the scope by noting that linked job postings, applications, and interview plans are not mutated. This clearly distinguishes the tool from other job-related operations and from archive tools that cascade to related entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you only want to archive the job row itself and not affect linked records. It indirectly tells the agent that if broader archiving is needed, other tools would be required, though it does not name specific alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_jobs_attach_artifactLink an item to a jobAIdempotentInspect
Link an existing interview plan, job posting, or application to a Job. Idempotent when already linked to the same Job; conflicts when linked elsewhere. Requires jobs:write and the artifact's own write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| request_id | No | ||
| artifact_id | Yes | ||
| artifact_type | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly discloses idempotency and conflict behavior ('Idempotent when already linked to the same Job; conflicts when linked elsewhere') and required permissions ('requires jobs:write and the artifact's own write scope'). This goes beyond annotations, which only indicate idempotentHint, adding crucial context for correct invocation.
Agents need to know what a tool does to the 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, each adding critical information: the action and object, idempotency and conflict behavior, and permission requirements. No fluff, very 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 5-parameter tool with no output schema, the description covers the essence: what it does, when it's safe, and what permissions are needed. The remaining parameters are standard (IDs, keys) and need no further explanation. Complete enough for an agent to call 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, but the description clarifies the artifact types (matching the enum) and the linkage semantics. However, it does not explain the purpose of 'request_id' or 'idempotency_key', which are non-obvious. Still, the key parameters are covered sufficiently.
Input schemas describe structure but not intent. Descriptions should explain 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 tool links an artifact (interview plan, job posting, application) to a Job. It explicitly differentiates from the sibling 'detach_artifact' and other job operations, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes the context of linking artifacts to jobs, and implicitly distinguishes from detach_artifact (via name). However, it does not explicitly mention when NOT to use this tool or alternatives beyond the sibling name, 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.
yardstick_jobs_closeClose a jobADestructiveIdempotentInspect
Close one Job row only; linked job postings, applications, and interview plans are not mutated.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description's job is to add context beyond that. It does so by clarifying the exact scope of mutation: only the Job row is closed, and linked job postings, applications, and interview plans are untouched. This is valuable behavioral context that prevents an agent from assuming cascading 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, tightly scoped sentence that front-loads the primary action and immediately clarifies the non-cascading behavior. Every word earns its place; there is no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, idempotent mutation with no output schema, the description provides the key scoping detail (no cascading mutations) but omits other useful context such as prerequisites (e.g., job must exist), what 'closed' means for downstream behavior, or whether the operation is reversible. The annotations cover idempotency and destructiveness, but the description could be more complete about the state change.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden for parameter meaning. However, the description does not explain job_id, request_id, or idempotency_key beyond what the schema provides (names and types). The description's scope note indirectly clarifies that job_id refers to a Job row, but it does not add meaningful semantic detail for the optional 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 ('Close') and resource ('one Job row only'), and explicitly distinguishes its scope from related operations by noting that linked job postings, applications, and interview plans are not mutated. It is clear and actionable, though it does not explicitly name a sibling tool to differentiate from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when the intent is to close a single job row without affecting related records. It does not explicitly state when not to use it or name alternatives (e.g., yardstick_jobs_archive or yardstick_jobs_update), but the scope limitation provides some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_jobs_createCreate a jobBInspect
Create an internal Job container without mutating job postings, applications, or interview plans.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| status | No | ||
| location | No | ||
| department | No | ||
| request_id | No | ||
| description | No | ||
| department_id | No | ||
| location_type | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, so the create action is expected. The description adds the useful context that it does not mutate related entities (postings, applications, interview plans), which clarifies its side-effect scope. However, it does not disclose other potential behaviors like permissions, reversibility, or response 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, efficient sentence that front-loads the action and adds a meaningful scoping constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and no parameter descriptions in either schema or tool description, the description is grossly incomplete. It does not explain what a 'Job container' is, what parameters mean, what the response looks like, or any prerequisites. The only context added is the non-mutation of other entities.
Complex tools with many parameters or behaviors need more documentation. 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 provides no parameter information whatsoever. With schema description coverage at 0%, the description fails to compensate for the lack of parameter documentation. The agent is left entirely to the raw schema, which has no descriptions either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create') and a specific resource ('internal Job container'), and explicitly clarifies what it does NOT mutate (job postings, applications, interview plans). This distinguishes it from sibling tools like yardstick_job_postings_create and yardstick_jobs_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 implies that this tool is for creating a job container independent of postings/applications/interview plans, but does not explicitly state when to use it versus alternatives. No explicit conditions, exclusions, or named sibling tools are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_jobs_detach_artifactUnlink an item from a jobADestructiveIdempotentInspect
Clear the link between an artifact and a Job. Idempotent when already unlinked. Requires jobs:write and the artifact's own write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| request_id | No | ||
| artifact_id | Yes | ||
| artifact_type | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds value by specifying the exact nature of the operation ('Clear the link' rather than delete the artifact), the idempotence condition ('when already unlinked'), and the required permissions. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The first sentence states the operation, and the second covers idempotence and permissions. Every sentence earns its place and the description is appropriately 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 core operation, idempotence, and required permissions, which is adequate for a simple unlink action. However, with no output schema and no parameter descriptions, it leaves some gaps around artifact types and optional parameters. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It helps infer that job_id refers to a Job and artifact_id/artifact_type refer to an artifact, but it does not explain request_id, idempotency_key, or the meaning of artifact_type enum values. Core params are partially inferable, but a significant share of parameter semantics is left to the schema with no 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 clear action ('Clear the link'), the resource ('an artifact'), and the target ('a Job'). It is immediately distinguishable from the sibling yardstick_jobs_attach_artifact because it describes the inverse operation, even without naming it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives preconditions ('Requires jobs:write and the artifact's own write scope') and notes idempotence when already unlinked, but it does not state when to prefer this tool over alternatives or when not to use it. No explicit usage-context or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_jobs_listList jobsCRead-onlyIdempotentInspect
List internal Job containers visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No | ||
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive behavior, lowering the bar. The description adds the useful detail that results are scoped to the current principal, but it does not disclose list ordering, pagination behavior, or how include_archived affects results.
Agents need to know what a tool does to the 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 front-loads the verb and resource, though it arguably compresses too much potentially useful context into an underspecified phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 list operation with no output schema and no parameter descriptions, this description is too thin. An agent would not know how pagination works, what the returned payload contains, or how archived jobs are treated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are four parameters and schema description coverage is 0%, so the description needed to explain or at least hint at the parameters. It says nothing about limit, request_id, starting_after, or include_archived, leaving the agent to infer their semantics 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 states a specific verb (List), resource (internal Job containers), and authorization scope (visible to current principal). It is clear enough to identify the tool as a list operation, though 'internal Job containers' is somewhat jargon-heavy and it does not explicitly contrast with sibling tools like job_postings_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 on when to choose this tool over siblings such as yardstick_jobs_read or yardstick_job_postings_list. The description does not state prerequisites, exclusion criteria, or a reason to prefer this tool for a particular case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_jobs_prospect_matchesList prospect matches for a jobARead-onlyIdempotentInspect
List deterministic Talent CRM prospect matches for one Job. Read-only; includes evidence, caveats, and blocked lifecycle states without outreach, conversion, import, or AI ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations that already declare read-only/idempotent/non-destructive, the description adds substantive behavioral context: matches are deterministic, and the response includes evidence, caveats, and blocked lifecycle states. It also clarifies what the tool does not do (outreach, conversion, import, AI ranking), giving the agent a realistic expectation of the tool's boundaries.
Agents need to know what a tool does to the 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 the primary purpose, then adds scope constraints efficiently. The 'Read-only' clause is redundant given the annotations, but it is not distracting. Overall, every sentence earns its place with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 exclusion scope well, but with no output schema it does not describe the response format, pagination, or ordering. The request_id parameter is left ambiguous, and the meaning of 'evidence, caveats, and blocked lifecycle states' is only hinted at. The tool is callable with a job_id, but an agent cannot fully anticipate the return structure.
Complex tools with many parameters or behaviors need more documentation. 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 implies that job_id identifies the job being matched but provides no detail on the request_id parameter. With 0% schema coverage, request_id remains completely unexplained, and even job_id lacks format or example context. The description fails to compensate for the sparse 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 ('List') and a specific resource ('deterministic Talent CRM prospect matches for one Job'), which immediately distinguishes it from generic lists like prospects_list or applications_list. Mentioning 'Talent CRM' and 'for one Job' leaves no ambiguity about what the tool targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 contextual guidance by enumerating exclusions ('without outreach, conversion, import, or AI ranking'), which implicitly conveys that this tool is not for initiating actions or AI-ranked results. However, it does not explicitly name alternative sibling tools or state when to prefer one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_jobs_readRead a jobARead-onlyIdempotentInspect
Read one internal Job container by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds mild context about the resource being an 'internal Job container' and identified by 'public id', but does not disclose response behavior, error cases, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word earns its place, and the key scoping constraint ('by public id') appears immediately after the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with supportive annotations and only one required parameter, the description is nearly sufficient. The main gap is the undocumented optional request_id, but it is not required for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies that job_id is a public identifier, but request_id is left completely unexplained. The primary required parameter is meaningfully described, while the optional one is 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 states a specific verb ('Read') and resource ('one internal Job container'), and further scopes to 'by public id'. This clearly distinguishes it from list/create/update siblings and from job_postings_read via the 'internal' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 reading a single job when its public id is known, but it does not explicitly state when to prefer this over yardstick_jobs_list or other job-related reads. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_jobs_updateUpdate a jobCDestructiveIdempotentInspect
Update one internal Job container with schema-bound public API fields.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| job_id | Yes | ||
| status | No | ||
| location | No | ||
| department | No | ||
| request_id | No | ||
| description | No | ||
| department_id | No | ||
| location_type | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is externally declared. The description adds only the notion that updates are constrained to schema-bound public API fields, not internal state. It does not describe the overwrite semantics or what destructive consequences might 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, front-loaded with the action and resource. It is concise while conveying the core boundary of updating only public API 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 an update tool with ten parameters, no output schema, and no parameter descriptions, this description is far too sparse. An agent cannot determine required fields, partial-update behavior, or the effect on existing job data 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 does not mention job_id, status, title, or any other field by name. 'Schema-bound public API fields' is too generic to compensate for ten 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 verb and resource: update a Job container. It distinguishes the tool from sibling create/read/archive actions, though 'internal Job container' and 'schema-bound public API fields' are slightly jargon-heavy. It is clearer than a tautology but not as explicit as enumerating affected fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 jobs_archive, jobs_close, jobs_attach_artifact, or any other sibling. The description does not state prerequisites, when an update is appropriate, or when an alternative should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_notifications_getRead your notification channelsBRead-onlyIdempotentInspect
Read your notification channels, personal overrides, organization defaults and Slack availability.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description's added value is naming what is returned (personal overrides, org defaults, Slack availability), but it says nothing about output shape, scoping to the caller, or 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?
A single front-loaded sentence with no filler. It is efficient, though the list of returned items could have been paired with a note on usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description at least enumerates the returned data, but it omits the meaning of request_id and any hint about the response structure or caller scoping. Adequate but with clear gaps for a read 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 coverage is 0% and the single parameter request_id is undocumented in both schema and description. The description does not explain what request_id is for (correlation, idempotency) or whether it is optional, leaving the one parameter uninterpretable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ("Read") and names the concrete resources returned: notification channels, personal overrides, organization defaults, and Slack availability. It distinguishes itself from mutation siblings like notifications_set, though it does not explicitly contrast with notifications_org_defaults_get which sounds adjacent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus notifications_org_defaults_get (which appears to return the org defaults alone) or slack_status. Usage is only implied by the word "your" indicating the current user's settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_notifications_org_defaults_getRead organization notification defaultsARead-onlyIdempotentInspect
Read the organization's default notification channels. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description does not need to repeat safety details. It adds meaningful context by noting that the operation is restricted to admins, which affects access expectations beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core purpose first and the access restriction second. No unnecessary 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 simple read tool with rich annotations and no output schema, the description is mostly complete: it identifies the resource and the admin restriction. The only minor gap is that the optional request_id parameter remains unexplained.
Complex tools with many parameters or behaviors need more documentation. 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 for the undocumented request_id parameter. It does not mention request_id at all, leaving its purpose 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 states a specific verb (Read), resource (organization's default notification channels), and scope (organization defaults vs. personal notifications). This clearly distinguishes it from siblings like yardstick_notifications_get and yardstick_notifications_org_defaults_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The admin-only prerequisite is useful usage context, but the description does not explicitly say when to use this tool instead of yardstick_notifications_get or when not to use it. Usage is implied by the resource scope rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_notifications_org_defaults_setSet an organization notification defaultBIdempotentInspect
Set the default channel for people who have not chosen their own. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| request_id | No | ||
| message_type | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds real value beyond them: it discloses the admin authorization requirement and clarifies that the change only affects users without their own preference, so it implicitly reassures that existing personal choices are untouched.
Agents need to know what a tool does to the 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 action and effect, with no filler. Density is appropriate, though the brevity comes at the cost of documenting the parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters, no output schema, and zero schema description coverage, the description leaves significant gaps: the meaning of message_type and its enum, the role of idempotency_key/request_id, and what the response looks like are all undocumented.
Complex tools with many parameters or behaviors need more documentation. 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% with 4 parameters, so the description must compensate. It mentions only the channel concept; message_type, request_id, and idempotency_key are never explained, and the description does not say whether channel applies per message_type or globally.
Input schemas describe structure but not intent. Descriptions should explain 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: setting the default notification channel at the organization level. The scope ('for people who have not chosen their own') distinguishes it conceptually from a personal preference setter, though it never names the sibling yardstick_notifications_set or yardstick_notifications_org_defaults_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?
'Admins only' gives the permission prerequisite and the phrase 'for people who have not chosen their own' implies when the default applies. However, there is no explicit routing guidance versus yardstick_notifications_set or yardstick_notifications_org_defaults_get, leaving the agent to infer which tool to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_notifications_resetRestore your default notification channelBIdempotentInspect
Remove your choice for one message type and use the organization default again.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| message_type | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, idempotent write. The description adds the key behavioral fact beyond that: the effect is the removal of a single per-message-type choice with the org default taking over — a scoped, reversible-looking state change. It still omits permission requirements and the response 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?
A single front-loaded sentence with no filler; the scope ('one message type') and the outcome ('use the organization default again') come immediately. It is efficient, but so terse that the omitted parameter guidance never gets a chance to appear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 settings mutation with no output schema, the description covers the core effect adequately, but with three parameters at 0% schema coverage and no annotation-level detail on permissions or no-op cases, an agent still has to guess at request_id/idempotency_key usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, and it only accounts for 'one message type' (message_type). The request_id and idempotency_key parameters are documented nowhere, and even message_type's enum values and per-user scoping are left 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 uses a specific verb and resource — remove your override for one message type so the organization default applies again — which clearly identifies this as the per-user notification reset. It distinguishes itself conceptually from notifications_get/set and notifications_org_defaults_set, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The implied trigger (you want to drop your custom channel and fall back to the org default) is understandable, but there is no explicit when-to-use statement, no mention of choosing notifications_set instead to set a channel, and no guidance on edge cases such as what happens when no override exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_notifications_setSet your notification channelCIdempotentInspect
Choose Email, Slack or Both for one of your internal message types.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| request_id | No | ||
| message_type | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=true, and destructive=false, so safety is partly covered. The description adds useful scope by saying it is for 'your' channel and for 'one of your internal message types,' but it does not say whether an existing channel setting is overwritten or what the caller should expect 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 front-loaded sentence with no filler, and the channel options are stated immediately. It is concise for a simple setting operation, though the brevity contributes to gaps documented under contextual 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 mutation tool with four parameters, two required enums, no schema parameter descriptions, and no output schema, the description is too thin. It omits the optional parameters and does not clarify personal notification settings versus org defaults, leaving invocation semantics incompletely specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It mentions the channel choices and that message_type is an internal message type, but it does not explain request_id or idempotency_key and does not enumerate or describe the message_type 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 clear imperative verb and identifies the resource: choosing Email, Slack or Both for an internal message type. It is understandable as a per-message-type notification setting, but it does not distinguish itself from siblings such as yardstick_notifications_get or yardstick_notifications_org_defaults_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of notifications_get, notifications_reset, or org defaults. Usage is only implied by the imperative sentence, with no alternatives, prerequisites, or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_answers_updateFill in the answers the offer documents ask for.CDestructiveIdempotentInspect
Fill in the answers the offer documents ask for. expected_draft_revision is required.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | Yes | ||
| offer_id | Yes | ||
| request_id | No | ||
| idempotency_key | Yes | ||
| expected_draft_revision | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is present in structured data. The description adds nothing beyond that: it does not explain what the destructive write touches, why expected_draft_revision exists (optimistic concurrency / stale-revision failure), or how idempotency_key is honored under retries.
Agents need to know what a tool does to the 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 are front-loaded and easy to scan, so it is not bloated. However, the second sentence is pure redundancy with the schema's required array, so it does not 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 destructive, non-read-only mutation with a 5-parameter schema at 0% description coverage and a nested answers object, the description is far too thin. There is no output schema to lean on and no explanation of side effects, revision-conflict behavior, or what a successful fill-in changes.
Complex tools with many parameters or behaviors need more documentation. 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 5 parameters (4 required, including a nested free-form object), so the description carries the full burden and largely fails it. Its single parameter statement—that expected_draft_revision is required—merely repeats the schema's required list and gives no semantics for answers, offer_id, idempotency_key, or request_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 a recognizable verb+resource (“fill in the answers the offer documents ask for”), which is clearer than the bare name. But it never distinguishes this from close siblings such as yardstick_offers_update or yardstick_offers_documents_edit, so an agent cannot tell which write path is correct without opening 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?
There is no when-to-use guidance, no prerequisites, and no mention of an alternative tool. The only guidance offered is a restatement that expected_draft_revision is required, which is not usage advice relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_approval_bindConfirm offer approvalBIdempotentInspect
Record only the approval decision explicitly reviewed in preview.
| Name | Required | Description | Default |
|---|---|---|---|
| binding | Yes | ||
| comment | Yes | ||
| decision | Yes | ||
| offer_id | Yes | ||
| request_id | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (non-readOnly, idempotent, non-destructive), so the description's job is to add what they cannot. 'Only ... explicitly reviewed' adds a real constraint: the committed decision must match the preview, the agent cannot substitute its own. It omits what happens on a hash/precondition mismatch, which is the key failure mode for a binding 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?
One sentence, front-loaded with the core constraint and free of filler. Its brevity is efficient rather than padded, though it tips into under-specification for a nested-object mutation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A non-readOnly, nested-schema bind operation with 0% parameter documentation and no output schema needs the description to carry the preview-to-bind contract: where the hashes come from, that mismatches are rejected, and what 'decision' and 'comment' are for. One sentence does not cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters including a nested 'binding' object with five required sub-fields (preview_hash, approved_action_key, approved_input_hash, approved_idempotency_key, resource_version_precondition). The description explains none of these — no meaning for idempotency_key, comment, decision, or any binding field — so the agent must infer the entire commit protocol from bare property names and minLength 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?
States a specific verb and resource: 'Record ... the approval decision'. The phrase 'explicitly reviewed in preview' signals the bind-after-preview pattern that distinguishes it from yardstick_offers_approval_preview and yardstick_offers_approval_review, though it never names those siblings outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the prerequisite (a preview must have been reviewed) but does not state it as a rule, nor does it name the preview tool or say what to do when no preview exists. Usage is inferable rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_approval_previewPreview offer approvalCIdempotentInspect
Review an approval decision without recording it.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | Yes | ||
| decision | Yes | ||
| offer_id | Yes | ||
| request_id | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says the review happens 'without recording it', which implies a read-only preview, while annotations declare readOnlyHint=false. That is a direct conflict about whether the tool mutates state, and the description provides no additional behavioral context about idempotency 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?
It is a single short sentence with no filler, and the no-recording constraint is front-loaded. It is arguably too terse for the tool's complexity, but there is no structural waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 five parameters, four required, an idempotency key, and no output schema, the description is far too sparse. It leaves the agent without parameter guidance, alternative routing, or a coherent safety profile given the readOnlyHint conflict.
Complex tools with many parameters or behaviors need more documentation. 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 five parameters with 0% description coverage, including a required idempotency_key, offer_id, decision enum, and comment. The description mentions only an 'approval decision' and gives no meaning for offer_id, idempotency_key, request_id, comment length constraints, or the approve/reject enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Review' and resource 'approval decision' are present, and 'without recording it' clarifies the preview nature. However, it does not explicitly say 'preview' or distinguish this tool from siblings such as yardstick_offers_approval_review and yardstick_offers_approval_bind.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'without recording it' implies this is a dry-run before the real approval action, but the description never states when to use this versus yardstick_offers_approval_bind or yardstick_offers_approval_review. No explicit alternatives or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_approval_reviewRead the approval step assigned to you.DRead-onlyIdempotentInspect
Read the approval step assigned to you.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description contributes nothing beyond that — it adds no context about what is returned, whether an approval must exist, or what the optional request_id does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no padding, but that brevity is under-specification rather than efficiency: it simply repeats the title verbatim and front-loads nothing of decision 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 tool with two undocumented parameters, no output schema, and three closely related sibling approval tools, the description leaves an agent without enough information to know what it will get back or when to prefer this over alternatives. Annotations cover the read-only profile but not the domain 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% for the two parameters. The description never mentions offer_id (required), request_id (optional, minLength 1), or what distinguishing them means. With zero schema documentation, the description was the only place to compensate and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus the nearby approval tools (preview/bind) or the generic yardstick_offers_read. The "assigned to you" phrasing hints at an implicit condition, but no explicit when/when-not or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_cancel_revisionCancel a replacement draft.DDestructiveIdempotentInspect
Cancel a replacement draft.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is known. The description adds nothing beyond that: it doesn't say what is destroyed, whether cancellation is reversible, or whether a cancelled draft can be reopened via yardstick_offers_open_revision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence is technically concise but constitutes under-specification rather than economy. There is no wasted word, but there is also no content beyond the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive mutation with no output schema, zero parameter documentation, and a description that merely echoes the title. Nothing tells an agent how to call it correctly or what to expect on success or 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% for three parameters, and the description does not mention any of them. The semantics of offer_id, idempotency_key, and especially the optional request_id are left entirely undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or when-not-to-use guidance at all. An agent gets no signal about prerequisites (must a revision be open first?), nor about alternatives such as yardstick_offers_open_revision for reversing the action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_countersignature_readRead company signature settings for this offer.CRead-onlyIdempotentInspect
Read company signature settings for this offer.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description contributes nothing further — no mention of what settings are returned, whether they can be inherited from company defaults, or any scoping/permission nuance.
Agents need to know what a tool does to the 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, but it is under-specified rather than genuinely concise — there is no second sentence of substance to earn its absence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read tool with no output schema and zero schema descriptions, the agent needs at least the meaning of request_id and what the response contains. The one-line description, identical to the title, leaves those gaps open, though the annotations do cover the read-only safety profile.
Complex tools with many parameters or behaviors need more documentation. 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 carry the burden for offer_id and request_id, yet it only says "for this offer," which weakly implies offer_id scoping. The purpose of request_id (presumably an idempotency/correlation key) is unexplained in both schema and 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 of when to use this read versus the update counterpart or when a caller would need the signature settings at all. The only usage signal is the word "Read," which the agent could infer 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.
yardstick_offers_countersignature_updateConfigure the company signer. This does not sign the offer.CDestructiveIdempotentInspect
Configure the company signer. This does not sign the offer.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| user_id | Yes | ||
| offer_id | Yes | ||
| confirmed | No | ||
| generation | Yes | ||
| request_id | No | ||
| idempotency_key | Yes | ||
| refresh_recipient | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=true, idempotent=true, so the safety profile is covered. The description's real contribution is countering the natural reading of 'countersignature' by clarifying that no signature is produced, which is genuinely useful. It still says nothing about what state is overwritten by this destructive write, required permissions, or offer-generation prerequisites.
Agents need to know what a tool does to the 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 no filler. The second sentence earns its place by preventing a specific misreading. It is efficient but under-specified rather than genuinely 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 destructive, 8-parameter mutation with no output schema and 0% parameter documentation, the description is far too thin — an agent cannot know what values to supply for mode, generation, or user_id, nor what the call changes. Only the read/write scope is clarified.
Complex tools with many parameters or behaviors need more documentation. 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 8 parameters, so the description must carry the burden and it carries none. Nothing explains mode (none/pre_sign/post_candidate), user_id nullability, confirmed, refresh_recipient, or the role of idempotency_key and generation — the enum values are the only hint, and they come from the schema, not the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clause 'This does not sign the offer' acts as an implicit when-not hint — an agent knows not to reach for this expecting a signing action — but no positive trigger, prerequisite (e.g. offer state), or named alternative is given. Usage 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.
yardstick_offers_createCreate an offer draft.DIdempotentInspect
Create an offer draft.
| Name | Required | Description | Default |
|---|---|---|---|
| packet_id | No | ||
| request_id | No | ||
| terms_json | No | ||
| content_ast | No | ||
| valid_until | No | ||
| snapshot_html | No | ||
| snapshot_text | No | ||
| application_id | Yes | ||
| idempotency_key | Yes | ||
| template_version_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the description does not contradict them. However, it adds nothing beyond those hints — no mention of whether a draft is auto-numbered, what state it starts in, or what idempotency_key semantics actually mean in this domain.
Agents need to know what a tool does to the 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 wasted words, but the brevity is under-specification rather than conciseness — it conveys no information beyond 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?
A 10-parameter mutation with nested objects, zero schema description coverage, and no output schema leaves the agent with almost no basis for correct invocation. The description must compensate for that gap and does not.
Complex tools with many parameters or behaviors need more documentation. 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 10 parameters sit at 0% schema description coverage, and the description mentions none of them. The agent gets no meaning for terms_json, content_ast, snapshot_html/text limits, template_version_id, packet_id, or why application_id and idempotency_key are 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 whatsoever — no prerequisites, no mention of when a draft is required versus updating an existing offer or opening a revision, and no routing among the many offers siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_documents_addAdd a published offer document to a draft offer.DIdempotentInspect
Add a published offer document to a draft offer.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| template_id | Yes | ||
| idempotency_key | Yes | ||
| expected_draft_revision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing on top: it does not explain the idempotency contract, the optimistic-concurrency behavior implied by expected_draft_revision, or what happens to the draft revision on 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?
A single front-loaded sentence with zero filler, which is structurally clean. But it duplicates the title exactly, so the sentence does not earn its place by adding any information an agent did not already have.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no output schema and 0% schema coverage, the description is completely inadequate. It omits the idempotency key contract and the expected_draft_revision concurrency guard, both of which are required for a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description carries the full burden of explaining offer_id, template_id, idempotency_key, request_id, and expected_draft_revision. It mentions none of them, leaving the agent with bare type/format hints and no semantic meaning for any 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no prerequisites, and no mention of alternatives. An agent cannot tell from the description when to add a document versus editing, reordering, or copying one from the library, nor what state the draft offer must be in.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_documents_change_packetReplace the offer's documents with a different packet. If answers or edits would be lost, nothing changes until you confirm.ADestructiveIdempotentInspect
Replace the offer's documents with a different packet. If answers or edits would be lost, nothing changes and the call returns a 409 change_packet_confirm_required error with the number of answers and edits. To go ahead, repeat the call with confirm_drops set to true.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| packet_id | Yes | ||
| request_id | No | ||
| confirm_drops | No | ||
| idempotency_key | Yes | ||
| expected_draft_revision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive=true and idempotent=true, but the description goes well beyond them: it discloses the exact failure behavior (409 `change_packet_confirm_required`), that nothing mutates on that path, that the error carries answer/edit counts, and the escape hatch (confirm_drops=true). This is genuinely useful behavioral context for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action, then the failure behavior, then the remedy. No waste and the critical safety information is not buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation with no output schema, the confirmation/error behavior is well covered. However, it omits permission/auth requirements and, more importantly, the meaning of five undocumented parameters (including expected_draft_revision concurrency and idempotency_key), so the definition is not fully self-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?
Schema description coverage is 0% across 6 parameters, so the description must carry the burden. It explains only `confirm_drops` (and its default semantics) while offer_id, packet_id, idempotency_key, request_id, and expected_draft_revision receive no meaning beyond their names — leaving the optimistic-concurrency and idempotency parameters 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 states a specific verb and resource: 'Replace the offer's documents with a different packet.' This clearly distinguishes it from sibling document operations (add/edit/remove/reorder), though it never names those siblings explicitly to route the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context on the two-phase confirm workflow: if answers/edits would be lost, nothing changes and a 409 is returned, and the agent must repeat the call with confirm_drops=true. It doesn't name alternative tools or say when to prefer this over documents_add/edit, but the conditional confirmation guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_documents_editEdit one document for this offer only. The library document does not change.BDestructiveIdempotentInspect
Edit one document for this offer only. The library document does not change. expected_draft_revision is required.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| content_ast | Yes | ||
| document_id | Yes | ||
| idempotency_key | Yes | ||
| expected_draft_revision | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the write/idempotency profile is covered structurally. The description adds two useful facts annotations cannot convey: edits are confined to the offer copy, and expected_draft_revision is mandatory (implying optimistic concurrency control). It still doesn't say that content_ast replaces the existing document content, which matters for a destructive edit.
Agents need to know what a tool does to the 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, scope statement front-loaded, no filler. The third sentence restates what the schema's required list already enforces, so it earns slightly less than it could, but the prose is tight and skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, idempotent mutation taking a nested content_ast payload, the description omits how the content is supplied or what the AST should contain, what happens to prior content, and any failure mode for a stale revision. With no output schema and 0% parameter coverage, the definition is under-specified for a tool this consequential.
Complex tools with many parameters or behaviors need more documentation. 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 6 parameters, so the description carries the full burden and only addresses one parameter (expected_draft_revision), which the schema's required array already states. content_ast (a free-form nested object), document_id, idempotency_key, offer_id and request_id get no meaning from the description 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?
States a specific verb and resource ('Edit one document for this offer') and immediately scopes it against the library document, which is exactly the distinction needed against siblings like yardstick_offers_library_documents_update_draft. An agent can tell the offer-scoped edit apart from the library edit without opening either 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 scope statement ('for this offer only... the library document does not change') implies when this tool applies rather than an alternative, but it never names the sibling to use when the library draft should change. No prerequisites or preconditions beyond the revision requirement are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_documents_listList the documents in an offer and what each still needs before sending.CRead-onlyIdempotentInspect
List the documents in an offer and what each still needs before sending.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds one useful behavioral fact beyond them — the response includes per-document readiness/'what each still needs before sending' — but says nothing about pagination, ordering, or what an unready document 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?
A single front-loaded sentence with the resource first and the readiness detail second; nothing is wasted. It is essentially the title verbatim, so it is terse rather than 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?
For a read-only list tool with no output schema, the description conveys the resource and the shape of the value (documents + readiness), which is roughly adequate. However, with 0% parameter documentation and no disambiguation from the library-documents list sibling, the definition is only minimally 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% across two parameters (offer_id required, request_id optional), and the description explains neither. It gives no indication of what offer_id refers to, whether request_id is an idempotency key, or how scoping works, leaving the agent to guess at both 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 statement of when to use this versus alternatives, and the sibling set contains a genuinely confusable neighbor (yardstick_offers_library_documents_list, yardstick_offers_documents_change_packet). The agent must infer the distinction 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.
yardstick_offers_documents_removeRemove a document from a draft offer.CDestructiveIdempotentInspect
Remove a document from a draft offer.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| document_id | Yes | ||
| idempotency_key | Yes | ||
| expected_draft_revision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — it does not explain what is destroyed, the draft-only constraint, or the role of the idempotency/revision fields, so it earns no credit for added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clean, front-loaded sentence with no wasted words. But it is so minimal that it is effectively the title repeated, so brevity here reflects 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 destructive mutation with an optimistic-concurrency parameter (expected_draft_revision) and an idempotency key, the description explains none of the operational requirements. With no output schema and five undocumented parameters, an agent cannot call this 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% across five parameters (offer_id, request_id, document_id, idempotency_key, expected_draft_revision), and the description mentions none of them. It fails to compensate for the complete 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this tool versus alternatives, no prerequisites (e.g., the offer must be in draft state), and no exclusions. The agent is left to infer that removing differs from editing or reordering a document.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_documents_reorderSet the order of the documents in a draft offer. List every document once.CIdempotentInspect
Set the order of the documents in a draft offer. List every document once.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| document_ids | Yes | ||
| idempotency_key | Yes | ||
| expected_draft_revision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds two useful facts beyond that: the offer must be a draft, and the supplied list is a complete ordering rather than a partial patch — implying replace-wholesale semantics. It still says nothing about whether omission of a document drops it, or about revision-conflict 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?
A single front-loaded sentence with no filler, and the operative constraint ('list every document once') is placed where an agent will read it. It is efficient, though the brevity comes partly from under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 five-parameter mutation with no output schema and zero schema documentation, the description leaves too much unsaid: no return/confirmation behavior, no concurrency semantics for expected_draft_revision, and no indication of what happens on partial lists. An agent could invoke it but would be guessing on several required fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across five parameters, so the description must compensate and does not. It only weakly implies that document_ids carries an ordered list; the required idempotency_key, offer_id, request_id, and expected_draft_revision parameters are entirely unexplained in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'List every document once' communicates a precondition (the input must be a complete permutation of the offer's documents), which is genuine usage guidance. However, there is no statement of when to prefer this over _documents_edit, no note about draft-only applicability being a hard requirement, and no mention of the expected_draft_revision concurrency guard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_documents_archiveArchive an offer document. Admins only.CIdempotentInspect
Archive an offer document. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| template_id | Yes | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description does add a real behavioral fact beyond them - the admin-only authorization requirement - but says nothing about reversibility or effects on already-published documents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler and the action front-loaded, which is structurally sound. But the brevity is under-specification rather than disciplined concision, given how much an agent still needs to know.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 admin operation with no output schema and 0% parameter documentation, the description is too thin: it omits what archiving does to the document's state, whether it is reversible, and any detail on the 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% across three parameters, including the required template_id and idempotency_key. The description supplies no meaning for any of them - not what template_id identifies, nor that idempotency_key prevents duplicate archives - so it fails 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only guidance is 'Admins only', which is a permission prerequisite rather than usage guidance. There is no statement of when to archive versus remove, update_draft, or packets_archive, and no conditions or exclusions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_documents_copyCopy an offer document into a new draft. Admins only.CIdempotentInspect
Copy an offer document into a new draft. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| request_id | No | ||
| template_id | Yes | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=false), so the bar is lower. The description's one genuine addition is the admin-only authorization requirement, which is real context beyond the annotations, but it says nothing about where the copy lands, whether the source is left untouched, or any 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 short sentences with no padding and the action front-loaded, but the text is a verbatim restatement of the title, so it is under-specified rather than genuinely tight. Nothing is wasted, but nothing beyond the title is contributed either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four-parameter mutation tool with no output schema and no parameter documentation anywhere, the description is far too thin. An agent cannot tell what the returned draft contains, whether the copy is nameable, or what happens on repeat calls, 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?
Four parameters with 0% schema description coverage, and the description explains none of them. It only loosely hints that a source document identifier (template_id) is involved; the purpose of idempotency_key, the optional name override, and request_id are left entirely unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only usage signal is the 'Admins only' restriction; there is no statement of when to copy versus create a fresh library document or update an existing draft, and no preconditions (e.g. source must be published/exist). An agent must infer selection logic 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.
yardstick_offers_library_documents_createCreate an offer document. Admins only.CIdempotentInspect
Create an offer document. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| name | Yes | ||
| request_id | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=false, so the safety and replay profile is covered. The description adds one real piece of behavioral context the annotations lack: the admin-only authorization requirement. It says nothing about what the created document state is or what happens on duplicate idempotency keys.
Agents need to know what a tool does to the 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 is front-loaded and free of padding, so there is no wasted wording. But it is under-specified rather than concise, and it merely echoes the title rather than conveying distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, 0% parameter coverage, and complex create semantics implied by idempotency_key/request_id, the description is far too thin. Only the admin restriction is conveyed; the create behavior, required fields meaning, and result are left entirely to 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% across four parameters (idempotency_key, name, kind, request_id), so the description carries the burden of clarifying them and provides nothing. The enum on kind and the length constraints in the schema supply partial semantics on their own, but the description adds no meaning about idempotency or request_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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Admins only" signals a permission precondition, which is minor usage value. However there is no guidance on when to use this tool versus the many other create/add document tools, no prerequisites, and no statement of what an offer library document is relative to an offer-attached document.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_documents_listList offer documents with their fill-ins, packets and published version. Admins only.CRead-onlyIdempotentInspect
List offer documents with their fill-ins, packets and published version. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description's one added behavioral fact is the admin-only authorization requirement, which is genuinely useful but is the sole contribution; nothing is said about result size, pagination, or scoping.
Agents need to know what a tool does to the 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 short sentence with no filler and the resource named up front, which is good structure. However, the sentence is verbatim identical to the title, so it consumes the entire description budget without adding any new information beyond the admin restriction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 usefully signals what the listing contains (documents, their fill-ins, packets, published version), which partly substitutes for the missing output schema. It is nonetheless silent on the sole input parameter, result volume/pagination, and how the library scope differs from sibling list 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?
There is one optional parameter (request_id) at 0% schema description coverage, and the description says nothing about it at all. With coverage this low the description is expected to compensate, but it neither explains request_id nor any filtering/formatting 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only usage-relevant clause is 'Admins only', which is an authorization precondition rather than a when-to-use rule. There is no guidance on when to choose this over yardstick_offers_documents_list or yardstick_offers_library_documents_read, and no exclusions or prerequisites beyond the admin restriction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_documents_publishPublish the current draft as a new version. Admins only.CIdempotentInspect
Publish the current draft as a new version. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| template_id | Yes | ||
| idempotency_key | Yes | ||
| expected_revision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, readOnlyHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine new information in 'Admins only' (an authorization requirement annotations cannot express) plus the fact that publishing yields a new version, but it omits conflict/failure behavior and whether the draft is retained or consumed.
Agents need to know what a tool does to the 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 action and the permission constraint front-loaded; nothing is padded or redundant. Brevity here is a style virtue even though the content is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 versioning mutation with four undocumented parameters, no output schema, and an expected_revision concurrency guard, the definition leaves too much unstated. An agent cannot tell what happens on a revision mismatch, what idempotency_key must contain, or whether publishing invalidates the draft.
Complex tools with many parameters or behaviors need more documentation. 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 four parameters, so the description carries the full explanatory burden and supplies nothing. template_id, idempotency_key, request_id and especially expected_revision (optimistic concurrency) are entirely undefined, and the phrase 'the current draft' does not explain how a document is identified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admins only' is the sole usage condition offered. There is no guidance on when to publish versus update_draft, create, or copy, and no note about what prerequisite state the draft must be in or whether expected_revision must be supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_documents_readRead an offer document, its draft and its versions. Admins only.CRead-onlyIdempotentInspect
Read an offer document, its draft and its versions. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| template_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description does add one genuinely useful behavioral fact beyond annotations: the operation requires admin privileges. It says nothing about what the returned document/draft/version set contains or their relationship.
Agents need to know what a tool does to the 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, no filler, with the operational scope stated before the permission caveat. It is well formed, though the terseness contributes to the documentation gaps scored elsewhere rather than being a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read with no output schema, the description need not describe return values, and annotations cover the safety profile. But with two undocumented parameters at 0% schema coverage and no sibling disambiguation, the definition leaves the agent guessing about the key input identifier.
Complex tools with many parameters or behaviors need more documentation. 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 two parameters (a required uuid template_id and an optional request_id), and the description explains neither. An agent receives no help on what template_id identifies or whether request_id is an idempotency key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Admins only" is a permission constraint, not usage guidance. There is no statement of when to call this versus reading the list, updating the draft, or publishing, so an agent has no routing signal beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_documents_update_draftSave an offer document draft and its fill-ins. Admins only.CDestructiveIdempotentInspect
Save an offer document draft and its fill-ins. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| fill_ins | No | ||
| request_id | No | ||
| content_ast | Yes | ||
| template_id | Yes | ||
| idempotency_key | Yes | ||
| expected_revision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds the genuine auth requirement ('Admins only'), which annotations do not express, but it says nothing about what the destructive write overwrites, how expected_revision conflicts are handled, or how idempotency_key deduplication behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Ten words with no filler, but the brevity here reflects under-specification rather than economy; the one sentence is essentially the title repeated. Nothing is front-loaded because there is nothing substantive to front-load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, idempotent, admin-gated mutation with 6 parameters, nested objects, and no output schema, and the description supplies only the permission gate. An agent cannot determine revision-conflict behavior, what content is replaced, or how to populate any of the required/non-required fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters (idempotency_key, template_id, content_ast, expected_revision, request_id, fill_ins), so the description carries the full burden and largely fails it. The phrase 'and its fill-ins' loosely maps to the fill_ins array and 'draft' hints at content_ast, but template_id, expected_revision, idempotency_key, and request_id are given no meaning or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only usage signal is the permission gate 'Admins only'; there is no statement of when to choose this over the create/publish/copy/archive siblings in the same library-documents family. No prerequisites such as working from an existing draft or revision are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_packets_archiveArchive an offer packet. Admins only.CIdempotentInspect
Archive an offer packet. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| packet_id | Yes | ||
| request_id | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=true, so the safety profile is covered. The description adds the authorization requirement (admins only), which is useful context beyond annotations, but says nothing about what archiving actually does to the packet or to offers already referencing it, or whether it is reversible.
Agents need to know what a tool does to the 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 very short sentences, front-loaded with the action and the permission gate, with no filler. However it is a verbatim restatement of the title, so it is concise at the cost of carrying almost no 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 mutating, idempotent archive operation with no output schema and fully undocumented parameters, the description omits the idempotency_key contract, any statement of effect/reversibility, and any reference to related library-packet tools. Only the admin gate is communicated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Three parameters with 0% schema description coverage (packet_id, request_id, idempotency_key) and the description adds no parameter meaning at all. With coverage this low the description must compensate, and it does not mention any 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Admins only' clause is a real prerequisite that gates who may call it, but there is no when-to-use/when-not guidance and no named alternative (e.g., update vs archive vs delete). Usage is implied rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_packets_createCreate an offer packet. Admins only.CIdempotentInspect
Create an offer packet. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| audience | No | ||
| defaults | No | ||
| request_id | No | ||
| template_ids | Yes | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare mutation semantics (readOnlyHint=false, destructiveHint=false, idempotentHint=false-is-false... idempotentHint=true). The description's only addition is the admin-only authorization requirement, which is genuine context not present in the annotations. It omits anything about the idempotency contract or what the packet contains, so it is thin but non-redundant.
Agents need to know what a tool does to the 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 core action front-loaded, so nothing is padded. But the brevity reflects under-specification rather than efficient communication for a 6-parameter mutation 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?
This is a non-idempotent-looking mutation with 6 under-documented parameters, a nested 'defaults' object, no output schema, and many sibling packet operations. Flagging admin-only access is one useful fact, but the definition leaves the agent without enough 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% across 6 parameters, including a nested free-form 'defaults' object and an 'idempotency_key' whose semantics an agent cannot infer from name alone. The description supplies zero parameter meaning, so it fails to compensate for the total absence 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admins only' is the sole guidance, and it is a permission constraint rather than a when-to-use rule. It never states when to create a packet versus use library_documents_create, or what conditions are required before creating one (e.g., existing templates, published documents).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_packets_listList offer packets and their documents. Admins only.CRead-onlyIdempotentInspect
List offer packets and their documents. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the admin-only authorization requirement, which is real value beyond the annotations, but says nothing about pagination, result size, or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded, no filler — but the text is a verbatim copy of the title, so it consumes space without adding information. Efficient in form, redundant 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?
There is no output schema, so the description carries the burden of explaining what is returned; it only says 'packets and their documents' with no shape, pagination, or filtering behavior. The admin gate is disclosed, which is the main thing an agent needs before invoking.
Complex tools with many parameters or behaviors need more documentation. 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 single request_id parameter is undocumented in both the schema and the description, so the agent has no idea what it is for (likely a request/trace correlation id). With only one optional parameter this is not catastrophic, but the description makes no attempt 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admins only' is a genuine access precondition, but there is no guidance on when to call this versus the sibling packet tools (create/update/reorder/archive) or the documents list. No exclusions, no context about scope of the listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_packets_reorderSet the order of offer packets. Admins only.CIdempotentInspect
Set the order of offer packets. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| packet_ids | Yes | ||
| request_id | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly=false, idempotent=true, destructive=false, openWorld=false), so the bar is lower. The description does add one piece of genuinely new context — the admin-only authorization requirement — but discloses nothing about what reordering destroys or how partial lists 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?
Two short sentences, front-loaded and free of padding, so it is efficient. The size is appropriate but the brevity reflects under-specification rather than tight editing — the little text present does minimal work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 reorder operation with 0% schema coverage and no output schema, the description is missing essentially everything an agent needs: whether packet_ids defines the full new order, error/validation behavior, and how idempotency interacts with repeated calls. Only the admin constraint 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?
Schema description coverage is 0% across three parameters, so the description carries the full burden and fails it. Critically, it never explains that packet_ids is an ordered array nor whether it must be the complete set or a partial reorder, and it says nothing about request_id or idempotency_key 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admins only' states a permission prerequisite but gives no when-to-use guidance, no alternatives, and no exclusion criteria. The distinction between this reorder and its list/create/archive/update siblings is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_library_packets_updateChange an offer packet. Admins only.CDestructiveIdempotentInspect
Change an offer packet. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| audience | No | ||
| defaults | No | ||
| packet_id | Yes | ||
| request_id | No | ||
| template_ids | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and idempotentHint=true, so safety semantics are covered structurally. The description adds the admin-permission requirement, which is genuine extra context, but says nothing about what a 'change' affects, whether it replaces or merges fields, or how the idempotency key behaves.
Agents need to know what a tool does to the 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 padding, and the admin constraint is placed up front. It is not so much concise as under-specified — the first sentence merely restates the title and carries almost no informational load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation with 7 undocumented parameters (0% coverage), a nested object, no output schema, and many sibling packet tools, the description omits nearly everything an agent needs: patch semantics, which fields are optional, required identifiers, and success/failure behavior. The admin note alone is far short of adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, including a nested 'defaults' object and a required idempotency_key, and the description supplies no parameter information whatsoever. Nothing tells the agent that name/audience/defaults/template_ids are the mutable fields or how idempotency_key should be formed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admins only' is a real usage precondition, which is more than nothing. However, there is no guidance on when to use this versus yardstick_offers_library_packets_create or yardstick_offers_library_packets_reorder, nor any statement of prerequisites beyond the admin role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_lifecycle_policy_readRead offer reminder settings. Admin only.CRead-onlyIdempotentInspect
Read offer reminder settings. Admin only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety behavior needs no restating. The description adds the admin-only authorization constraint, which the annotations do not cover, but says nothing about what the settings contain or failure modes for non-admins.
Agents need to know what a tool does to the 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, zero filler, with the resource scope leading and the access constraint trailing. Nothing could be removed without losing 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 single-parameter read tool with no output schema and full annotation coverage, the description supplies the key facts: what is read and the admin restriction. It stops short of describing returned settings or the request_id, which are modest but real 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 there is one parameter (request_id), which the description never mentions – its purpose (idempotency/correlation?), format, or optionality is left entirely unexplained. With coverage this low the description should compensate 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admin only' is a real gating prerequisite that tells the agent who may call it. Beyond that, there is no statement of when to read these settings versus which alternatives apply, nor what to do if the agent lacks admin rights – usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_lifecycle_policy_updateSet reminder intervals in seconds before expiry. Admin only.CDestructiveIdempotentInspect
Set reminder intervals in seconds before expiry. Admin only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | Yes | ||
| offsets_seconds | Yes | ||
| expected_revision | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=true, so the safety profile is known. The description adds useful non-annotation context by stating "Admin only", which is an authorization prerequisite the annotations do not capture. However, it does not explain what is destroyed or replaced when intervals are set, nor why an idempotency key and expected revision are required, so it leaves significant mutation semantics implicit.
Agents need to know what a tool does to the 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, front-loaded sentences with no wasted words. It is not bloated, but its brevity comes at the cost of omitting important mutation details rather than being efficiently comprehensive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive offers-policy mutation with a required expected_revision and idempotency_key and no output schema, the description is too thin. It does not explain optimistic concurrency, whether the supplied offsets replace or append to the existing schedule, or what happens on revision mismatch. Only the admin restriction is added beyond the title and 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%, so the description must carry parameter meaning; it only contributes the unit for offsets_seconds by saying the intervals are "in seconds". It says nothing about idempotency_key, expected_revision, request_id, the maximum of three offsets, or that offsets must be positive. For a mutation tool requiring a concurrency token and idempotency key, this is a substantial 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only usage guidance is the audience restriction "Admin only"; there is no explicit when-to-use condition, no mention of the read counterpart for inspecting current intervals, and no exclusions. An agent is left to infer that this should be used only when an admin intends to overwrite the reminder policy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_listList offers visible to you.DRead-onlyIdempotentInspect
List offers visible to you.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | ||
| cursor | No | ||
| current | No | ||
| unsigned | No | ||
| person_id | No | ||
| request_id | No | ||
| valid_after | No | ||
| valid_before | No | ||
| application_id | No | ||
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered elsewhere. The only addition is the visibility scoping ('visible to you'), which hints at permission-based filtering, but nothing about pagination behavior, default ordering, or result size given the cursor/limit 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?
A single short sentence with zero padding, so nothing is wasted — but the brevity comes from under-specification rather than efficiency. It is front-loaded but empty of actionable 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?
An 11-parameter, filter-heavy list tool with 0% schema descriptions and no output schema is documented by one sentence with no parameters. This is grossly insufficient for an agent to call it correctly; the enum of 12 offer states and the boolean filters (current, unsigned, include_archived) are entirely unexplained.
Complex tools with many parameters or behaviors need more documentation. 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, so the description must compensate and it does not mention a single one — not limit, cursor, state, current, unsigned, person_id, application_id, valid_after/before, request_id, or include_archived. The agent has no idea what most filters mean or how they 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 of when to use this tool versus yardstick_offers_read (single offer), yardstick_offers_status, or the many other offer-listing-adjacent tools. The agent is left to infer usage purely from the name. No exclusions, prerequisites, or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_open_revisionOpen a replacement draft. Sending requires a separate preview and confirmation.CIdempotentInspect
Open a replacement draft. Sending requires a separate preview and confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already specify readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds useful context that sending is out of scope and requires preview and confirmation, but it does not explain what happens to existing drafts or revisions, permissions needed, or other mutation 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 two short sentences with no filler, and the key constraint about sending is front-loaded. It is efficient, though the first sentence largely repeats the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-read-only mutation tool with required parameters and no output schema, the description is too thin. It does not explain required inputs, what is returned, how existing drafts are affected, or what the replacement draft represents.
Complex tools with many parameters or behaviors need more documentation. 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 three undocumented parameters: offer_id, request_id, and idempotency_key. It mentions none of them and gives no format, meaning, or constraint 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 yardstick_offers_update, yardstick_offers_cancel_revision, or yardstick_offers_create. The note that sending requires separate preview and confirmation is behavioral context, not a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_readRead an offer. Members see status; its creator and admins see full details.CRead-onlyIdempotentInspect
Read an offer. Members see status; its creator and admins see full details.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds one genuinely useful behavioral fact not in the annotations: output detail is permission-dependent (members see status only; creator and admins see full details). It says nothing about how request_id behaves, what include_archived does, or what happens for a nonexistent or unauthorized offer.
Agents need to know what a tool does to the 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 action and followed by the permission caveat; no filler. The brevity is efficient even though it leaves informational gaps that are penalized 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 read tool with three parameters at 0% schema coverage and no output schema, the description leaves the two optional parameters entirely unexplained and gives no hint of the returned shape beyond the visibility clause. An agent cannot safely decide when to pass request_id or include_archived from this text.
Complex tools with many parameters or behaviors need more documentation. 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 three parameters, so the description must compensate, and it does not: neither request_id (likely a deduplication/request key) nor include_archived is mentioned. Only the offer_id is weakly implied by 'Read an offer'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only implied: it reads a single offer, so the agent infers it needs an offer_id. There is no explicit when-to-use, no mention of when yardstick_offers_list, yardstick_offers_status, or yardstick_offers_timeline would be the better call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_rescind_bindConfirm offer rescindBDestructiveIdempotentInspect
Withdraw only the offer explicitly reviewed in preview.
| Name | Required | Description | Default |
|---|---|---|---|
| binding | Yes | ||
| offer_id | Yes | ||
| request_id | No | ||
| email_candidate | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds useful scoping context (blast radius limited to the previewed offer) but says nothing about what the rescind actually does to the offer, how binding-hash mismatches are rejected, or how resource_version_precondition failures surface.
Agents need to know what a tool does to the 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, and the scope constraint leads. It is efficient but arguably too sparse for a destructive multi-parameter bind operation, so content is under-specified rather than 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?
For a destructive, nested-binding tool with 5 parameters at 0% schema coverage and no output schema, one sentence is not enough. Missing are the preview prerequisite, how the binding object is populated from preview output, and the observable effect of a successful rescind.
Complex tools with many parameters or behaviors need more documentation. 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 5 parameters, including a nested binding object with five required fields (preview_hash, approved_action_key, approved_input_hash, approved_idempotency_key, resource_version_precondition) that are critical to a successful call. The description only hints that these values come from the preview, without stating that binding fields must echo preview output or what email_candidate/request_id do.
Input schemas describe structure but not intent. Descriptions should explain 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 (withdraw) and resource (offer), plus a scope constraint limiting it to the offer reviewed in preview. It implicitly contrasts with the preview sibling without naming yardstick_offers_rescind_preview, so an agent can place it in the preview/bind pair but must infer the pairing from naming convention alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'only the offer explicitly reviewed in preview' implies the preview must be run first, but the prerequisite tool is not named and no explicit when-not-use or exclusion guidance is given, leaving the agent to infer the workflow from the *_preview sibling name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_rescind_previewPreview offer rescindBIdempotentInspect
Review withdrawal and optional candidate email without changing the offer.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| email_candidate | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description supplies the one fact that matters most for a preview tool: the offer is untouched, which is extra reassurance beyond destructiveHint=false. There is a mild tension with readOnlyHint=false (the call is not classified as read-only, presumably because it may write audit or derived records), and the description says nothing about what the preview returns, whether it is safe to call repeatedly, or what a rescind would do to the offer downstream.
Agents need to know what a tool does to the 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, and the key safety guarantee is placed at the end where it reads as a constraint on the whole action. It is arguably too terse for a 4-parameter tool, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description never says what the preview actually shows — the withdrawal wording, the generated candidate email body, validation warnings, or a diff against the current offer. For a preview tool whose entire value is its returned artifact, that is a significant omission on top of the undocumented 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%, so the description carries the full burden. It only hints at one parameter via 'optional candidate email' (email_candidate); offer_id, request_id, and especially idempotency_key — which is required despite this being a preview — 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?
States a concrete action (review a withdrawal plus the optional candidate email) and a scope guarantee (no change to the offer), which is enough to tell it apart from the mutating sibling yardstick_offers_rescind_bind. It never names that sibling explicitly, so the preview-vs-commit distinction has to be inferred from the name and the 'without changing' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'without changing the offer' implies this is the safe pre-flight step before an actual rescind, so when-to-use is reasonably implied. However, no alternative is named — neither yardstick_offers_rescind_bind as the follow-up nor yardstick_offers_cancel_revision or yardstick_offers_status as the ways to inspect offer state — so an agent must guess the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_send_bindConfirm offer sendBIdempotentInspect
Send only the exact offer explicitly reviewed in preview.
| Name | Required | Description | Default |
|---|---|---|---|
| binding | Yes | ||
| offer_id | Yes | ||
| recipient | No | ||
| request_id | No | ||
| idempotency_key | Yes | ||
| expected_draft_revision | Yes | ||
| expected_snapshot_sha256 | No | ||
| recipient_override_reason | No | ||
| expected_send_payload_digest | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-destructive, idempotent, non-read-only behavior. The description adds a meaningful safety constraint that only the exact previewed offer may be sent, but it does not explain the binding-token preconditions, mismatch behavior, or other operational details for this complex send 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. It is appropriately concise, though its brevity contributes to under-specification for a high-complexity bind 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 9-parameter send/bind operation with a nested binding object, no output schema, and 0% schema description coverage, one sentence is not complete. It conveys the core safety intent but leaves required tokens, preconditions, and parameter usage unexplained.
Complex tools with many parameters or behaviors need more documentation. 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 9 parameters, including a required nested binding object with five subfields. The description mentions no parameter names or semantics and therefore does not compensate for the schema's complete 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?
States a specific verb ("Send") and resource ("offer") and scopes it to the exact offer reviewed in preview. This is clear, though it does not explicitly name the preview tool as the required predecessor, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage condition: send only the offer that was explicitly reviewed in preview. It does not name alternatives or explain when not to use this tool, but the context is sufficiently clear for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_send_previewPreview offer sendCIdempotentInspect
Review the exact offer and recipient without sending.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| recipient | No | ||
| request_id | No | ||
| idempotency_key | Yes | ||
| expected_draft_revision | Yes | ||
| expected_snapshot_sha256 | No | ||
| recipient_override_reason | No | ||
| expected_send_payload_digest | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, which is surprising for something framed as a preview, and the description does nothing to explain why (does it persist a preview record, consume the idempotency key, or mint a digest?). With 8 parameters including expected_draft_revision, expected_snapshot_sha256 and expected_send_payload_digest, the description conveys none of the staleness/concurrency semantics that clearly define this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient but on the terse side for a tool with this much hidden protocol, leaving the burden on schema archaeology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, 8 undocumented parameters, and a non-obvious write-ish annotation mean the description had to carry the load and does not. It never says what the preview returns (rendered document? digest? validation errors?) nor how it feeds the subsequent send 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% across 8 parameters, and the description adds no meaning for any of them. The three required concurrency/consistency fields and the recipient override fields are left entirely raw, so an agent cannot know what expected_draft_revision or expected_send_payload_digest are checked against.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Review the exact offer and recipient without sending" states a concrete verb (review/preview) and resource (offer + recipient), and the phrase "without sending" implicitly separates it from the send path. It stops short of naming the sibling it pairs with (yardstick_offers_send_bind), so differentiation is inferential rather than 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?
Use before sending is strongly implied by "without sending," but the description never states the prerequisite state (e.g., draft submitted for approval, revision current) or names send_bind as the follow-up action. An agent must guess that this is the mandatory pre-flight step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_send_statusRead offer delivery status and recovery guidance.CRead-onlyIdempotentInspect
Read offer delivery status and recovery guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are extremely rich, detailing read-only, idempotent, and non-destructive nature. The description itself merely restates the purpose and adds no unique behavioral context (like specific API limitations, latency, or error handling) beyond what the structured annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise, using a single sentence that perfectly encapsulates the tool's function without any wasted words or unnecessary 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?
Despite having strong annotations for safety, the definition is functionally incomplete. The complete lack of parameter semantics, especially given the 0% schema coverage, means the agent cannot reliably construct the required input payload.
Complex tools with many parameters or behaviors need more documentation. 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 description must explain the parameters. It fails to provide any meaning or context for either 'offer_id' or the optional 'request_id', making it nearly impossible for an agent to use the optional 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 other offer-related endpoints (e.g., a general 'read' endpoint). It simply states what the tool does, leaving the agent to infer the necessary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_signed_copyGet a five-minute download link for the signed company copy. Requires creator or admin access.CRead-onlyIdempotentInspect
Get a five-minute download link for the signed company copy. Requires creator or admin access.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations handle safety (ReadOnly, Non-destructive), the description adds the crucial behavioral constraint that the download link is only valid for 'five minutes.' This temporal limitation adds significant, non-obvious context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is extremely concise, delivering the core action and the required access level in only two short, functional sentences with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being concise, the description is incomplete for a tool involving a restricted, time-sensitive link. The zero% schema description coverage requires the description to clarify input fields, which it fails to do, leaving critical information missing for the AI 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%, meaning the description must explain the parameters, but it only provides a generic statement about the goal. It fails entirely to give semantic meaning to the required 'offer_id' or optional 'request_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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear prerequisite constraint ('Requires creator or admin access'), which serves as a usage guideline. However, it does not specify the ideal timing or conditions for when this tool should be used versus other related offer management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_signed_files_downloadDownload one signed file of an offer as a PDF. Requires creator or admin access.ARead-onlyIdempotentInspect
Download one signed file of an offer as a PDF. file_id is required: this tool returns one file per call, up to 3 MB. Get the IDs from yardstick_offers_signed_files_list. For a larger file, or to save every file, use the CLI yardstick offers signed-files download. Requires creator or admin access.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | No | ||
| offer_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context: one file per call, a 3 MB size ceiling, PDF output, and the creator/admin access requirement. Minor inconsistency: it asserts file_id is required while the schema's required list contains only offer_id.
Agents need to know what a tool does to the 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 short sentences, front-loaded with the action and cardinality limit, then provenance, then the escape hatch for large/bulk cases, then the access gate. 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 read-only download tool with no output schema and only three parameters, the description covers output format, per-call scope, size limit, ID provenance, alternative path, and auth. The remaining gap is request_id semantics and behavior on an invalid file_id.
Complex tools with many parameters or behaviors need more documentation. 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 carry the load. It documents file_id well (required, and where to obtain it) and implies offer_id via 'of an offer', but request_id is never explained and the file_id required claim conflicts with the schema's required array.
Input schemas describe structure but not intent. Descriptions should explain 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+format: download one signed file of an offer as a PDF. It also names the sibling that produces the IDs (`yardstick_offers_signed_files_list`), so an agent can distinguish it from the list/copy siblings without opening a 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?
Explicit when-to-use and alternatives: get IDs from `yardstick_offers_signed_files_list`, and for larger files or bulk saving use the CLI `yardstick offers signed-files download`. The access prerequisite (creator or admin) is also stated, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_signed_files_listList the signed files of an offer. Requires creator or admin access.CRead-onlyIdempotentInspect
List the signed files of an offer. Requires creator or admin access.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds the meaningful extra fact that creator or admin access is required, which the annotations do not convey; it stops short of describing pagination or empty-result 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?
It is short and front-loaded with the action, so it is easy to scan. But the text is verbatim identical to the title, so the opening sentence adds no information beyond the structured title field.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list with no output schema, the essentials (what it lists, access requirement) are present. Given 0% schema coverage on two parameters and no explanation of what a 'signed file' record contains, it is only minimally 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 carries the full burden, yet it explains neither parameter. offer_id is inferable from the name, but the optional request_id is undocumented anywhere, and no format or idempotency semantics for it are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 access prerequisite (creator or admin), which is useful context for whether the agent can call it at all. However, it gives no guidance on when to choose this over yardstick_offers_signed_files_download or yardstick_offers_documents_list, so the selection logic is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_statusRead signing, company signature, finalization and lifecycle status.CRead-onlyIdempotentInspect
Read signing, company signature, finalization and lifecycle status.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is a read-only, idempotent operation, covering the core behavioral safety profile. The description focuses entirely on the status fields it returns, adding contextual scope rather than new behavioral traits (like rate limits or specific authentication 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 maximally concise, stating its purpose in a single, dense sentence. There is no fluff, and the focus is entirely on defining the scope of the data being read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete regarding the tool's intended purpose (what statuses are accessed). However, since no output schema is provided, the description is incomplete in communicating the expected data structure of these statuses, which is a necessary piece of 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?
With 0% schema description coverage, the description must compensate for the lack of clarity on input parameters. However, the description only details the statuses returned (output), failing completely to add meaning or guidance regarding the required input parameters like 'offer_id' or 'request_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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 is purely descriptive of the tool's function. It does not provide any guidance on when an agent should choose this tool over, for example, 'yardstick_offers_read' or 'yardstick_offers_timeline', making its usage context ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_submit_for_approvalRequest approval of this draft.DIdempotentInspect
Request approval of this draft.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| idempotency_key | Yes | ||
| expected_draft_revision | Yes | ||
| expected_approval_digest | Yes | ||
| expected_policy_revision_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, idempotent operation. The description adds no behavioral detail beyond that: it does not explain that submission is a state-changing action, what preconditions must hold, or what happens to the draft after submission.
Agents need to know what a tool does to the 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 is front-loaded and contains no filler, but it is essentially identical to the title and far too sparse for a six-parameter mutation tool. Conciseness here is achieved through omission rather than 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?
Given five required parameters, optimistic-concurrency fields, no output schema, and zero parameter documentation, the description is not complete enough for an agent to invoke the tool safely. It omits preconditions, expected inputs, and the effect of submitting a draft for approval.
Complex tools with many parameters or behaviors need more documentation. 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 six parameters have 0% schema description coverage, and the description mentions none of them. Critical fields such as expected_draft_revision, expected_approval_digest, expected_policy_revision_id, idempotency_key, and offer_id 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 related approval preview, bind, or review tools. It also does not state prerequisites, such as the draft needing to be in a valid state or having an approval digest and policy revision already computed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_timelineRead the offer history.DRead-onlyIdempotentInspect
Read the offer history.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no mention of what the history contains, its ordering, whether it paginates, or the effect of include_archived on results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no waste, but this is under-specification rather than conciseness. There is no front-loaded scoping information an agent could act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A three-parameter read tool with no output schema, no documented parameters, and a one-line description leaves the agent unable to predict what comes back or how to shape the query. The definition is inadequate for the 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% for all three parameters, so the description is the only place meaning could be conveyed — and it says nothing. The opaque `request_id` parameter and the `include_archived` toggle (which materially changes the returned history) are left 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this versus yardstick_offers_read, yardstick_offers_status, or yardstick_offers_send_status — all plausible alternatives in the offer family. The agent can only infer usage from the tool name, with no exclusions or preconditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_updateUpdate a draft using its current version.DDestructiveIdempotentInspect
Update a draft using its current version.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | ||
| request_id | No | ||
| terms_json | No | ||
| content_ast | No | ||
| valid_until | No | ||
| snapshot_html | No | ||
| snapshot_text | No | ||
| idempotency_key | Yes | ||
| expected_draft_revision | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only a thin concurrency hint with using its current version, but does not explain what data may be overwritten, how conflicts are handled, or whether partial updates are supported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is drastically under-specified for a 9-parameter destructive update operation. Conciseness here comes at the cost of clarity rather than 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 mutation tool with 9 parameters, 0% schema description coverage, no output schema, and rich annotations, the description is far too sparse. It does not explain required parameters, partial versus full update behavior, concurrency failure handling, or the expected result of the 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% across 9 parameters, and the description only vaguely corresponds to expected_draft_revision via current version. It provides no semantics for offer_id, idempotency_key, terms_json, content_ast, valid_until, snapshot_html, snapshot_text, or request_id, leaving nearly all parameters 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 yardstick_offers_create, yardstick_offers_documents_edit, or other offer mutation tools. The phrase using its current version implies a precondition but does not explicitly state when this tool is appropriate or what to do if the revision is stale.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_verification_policy_readRead candidate email verification settings. Admin only.CRead-onlyIdempotentInspect
Read candidate email verification settings. Admin only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds the one thing annotations cannot: an admin authorization requirement. Beyond that it says nothing about what settings are returned or what happens if none exist.
Agents need to know what a tool does to the 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, front-loaded sentences with no padding. It is efficiently written, though the efficiency comes partly from omitting necessary detail rather than from tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the burden of indicating what the returned verification settings contain, and it does not. Combined with an undocumented request_id parameter and no guidance on the not-configured case, an agent has only the admin constraint and the read semantics to work with.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter, request_id, with 0% schema description coverage, and the description never mentions it. An agent cannot tell from anywhere whether request_id is a required idempotency key, a correlation ID, or a target resource identifier. The description should compensate for the coverage gap 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?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Admin only" conveys the precondition for calling it, which is real usage guidance. However, there is no statement of when to prefer this over the update sibling, nor of what an agent should do if verification policy is not yet configured.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_offers_verification_policy_updateSet candidate email verification requirements. Admin only.CDestructiveIdempotentInspect
Set candidate email verification requirements. Admin only.
| Name | Required | Description | Default |
|---|---|---|---|
| required | Yes | ||
| request_id | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is largely covered structurally. The description adds the admin-only authorization constraint, which is real value beyond annotations, but it does not say what existing policy values are replaced or how the mutation behaves.
Agents need to know what a tool does to the 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 action front-loaded and no filler, which is structurally sound. But the text is verbatim the tool title, so the space is used efficiently for too little signal rather than genuinely earning 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 destructive, admin-gated mutation with three undocumented parameters and no output schema, the description is far too thin. It omits which settings are affected, what the required booleans control, and how idempotency_key should be supplied, so an agent lacks enough to call 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% across three parameters, and the description never mentions any of them. The purpose wording hints at the boolean 'required' flag, but idempotency_key and request_id receive no explanation anywhere, leaving a real gap the description should have filled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Admin only' clause communicates a permission prerequisite, which is meaningful usage context. It does not say when to prefer this over the read tool or what conditions should trigger a change, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_opportunities_deep_linkGet a link that opens an opportunity in YardstickBIdempotentInspect
Create a public deep link for an opportunity workflow view.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| opportunity_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey idempotency (idempotentHint: true) and non-destructiveness (destructiveHint: false). The description adds the meaningful trait that the link is 'public', implying anyone with the link can access the opportunity view, which is useful context beyond the annotations. However, it does not disclose expiration, revocability, or whether authentication is required to open the link.
Agents need to know what a tool does to the 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 that front-loads the core action ('Create a public deep link') before specifying the target ('an opportunity workflow view'). Every word contributes meaning, with no filler or redundancy against the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter utility, the core purpose is clear, but there is no output schema and the description does not specify the response shape or field names. The unexplained request_id and the lack of detail about what makes the link 'public' leave minor but real gaps for an agent trying to invoke and consume 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?
Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It never mentions 'opportunity_id' or 'request_id' by name; only the word 'opportunity' hints at the role of opportunity_id. The optional request_id is entirely unexplained, leaving an agent to guess its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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') and resource ('a public deep link for an opportunity workflow view'), and the title reinforces that this returns a link to open an opportunity in Yardstick. It is clear this tool is for opportunities rather than tasks, though it does not explicitly contrast with sibling deep-link tools like yardstick_tasks_deep_link or yardstick_source_links_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when a task deep link or a source link would be more appropriate. The description implies the basic use case (need an opportunity deep link) but provides no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_opportunities_listList opportunitiesARead-onlyIdempotentInspect
List read-only opportunity workflow views visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'visible to the current principal' scoping detail, which is useful behavioral context beyond the annotations. However, it does not disclose whether the result is paginated, what the response shape is, or whether the list is ordered. With annotations covering the core safety traits, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the verb and resource, and includes the key scoping qualifier. There is zero waste; every word earns its place. The description is appropriately sized 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 read-only list tool with annotations covering safety and idempotency, the description is mostly complete. However, it does not clarify what 'opportunity workflow views' means, whether the result is paginated, or how the three parameters interact. The lack of an output schema means the agent has no information about the return shape, but for a list tool this is a moderate gap rather than a critical one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden for parameter meaning, but it does not mention limit, request_id, or starting_after at all. The parameter names themselves are fairly self-explanatory (limit, starting_after are common pagination parameters), and the schema provides type and constraints. The description adds no semantic value beyond what the schema already implies, so the baseline 3 for a simple list 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 ('List') and resource ('opportunity workflow views') and adds a scoping qualifier ('visible to the current principal'). It is clear enough to distinguish from the sibling tools like yardstick_opportunities_read and yardstick_opportunities_next_action, though it does not explicitly name them. The phrase 'workflow views' is slightly ambiguous—it could mean a list of views rather than a list of opportunities—but the title 'List opportunities' anchors the intended meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use case and the 'visible to the current principal' qualifier gives some context about scope, but it does not explicitly state when to use this tool versus alternatives like yardstick_opportunities_read or yardstick_opportunities_next_action. There is no mention of pagination usage or when the limit/starting_after parameters should be used. The guidance 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.
yardstick_opportunities_next_actionCheck the next action on an opportunityCIdempotentInspect
Read the next action state for an opportunity without mutating it.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| opportunity_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the operation is read-only ('Read... without mutating it'), but the annotations declare readOnlyHint: false, which directly contradicts that claim. While idempotentHint: true and destructiveHint: false somewhat support a safe read, the readOnlyHint conflict is a serious inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler or redundant restatement of the tool name. It front-loads the core action and adds the key non-mutation qualifier 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?
With no output schema and no documentation of what 'next action state' means or what the returned data looks like, the description leaves a meaningful gap. The annotation contradiction also undermines agent confidence in the tool's side effects. A simple read tool needs at least some indication of response shape or domain meaning.
Complex tools with many parameters or behaviors need more documentation. 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 either parameter. 'opportunity_id' is somewhat self-explanatory from its name, but 'request_id' is entirely unexplained, leaving a required-adjacent parameter 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 uses a specific verb, 'Read', and a specific resource, 'the next action state for an opportunity,' making it immediately clear what the tool operates on. The phrase 'without mutating it' and the focus on 'next action state' distinguish it from broader opportunity read/list tools like yardstick_opportunities_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tool is for checking the next action state, but it gives no explicit guidance on when to choose it over related tools, no prerequisites, and no mention of what request_id is for. There is no when/when-not guidance or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_opportunities_readRead an opportunityBRead-onlyIdempotentInspect
Read one read-only opportunity workflow view by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| opportunity_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no further behavioral context (e.g., response format, authorization, or side effects) beyond a redundant 'read-only' phrase, so it contributes minimal value here.
Agents need to know what a tool does to the 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 ten-word sentence with no filler. The main verb and object are front-loaded, and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one required parameter)Skip, this is mostly adequate, but 'workflow view' is undefined and the optional request_id lacks any semantic hint. With no output schema, the description also does not mention return content, leaving room for 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?
Schema description coverage is 0%, and the description clarifies that opportunity_id is the 'public id', partially compensating for the missing parameter documentation. However, request_id is left completely unexplained, so the compensation 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 states a specific verb ('Read') and resource ('opportunity workflow view') with an identifier ('by public id'), clearly indicating a single-object read operation. It is differentiated from the list and next_action siblings in name and scope, though 'workflow view' is 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?
No guidance is given on when to use this tool versus alternatives like yardstick_opportunities_list or yardstick_opportunities_next_action. The description only states what the tool does, leaving the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_people_createAdd a personCInspect
Create a person through the public Yardstick API.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| No | |||
| notes | No | ||
| phone | No | ||
| request_id | No | ||
| resume_url | No | ||
| linkedin_url | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is partly covered. The description adds no behavioral context beyond the word 'Create,' and no mention of side effects, duplicate handling, or return values. There is no contradiction with annotations, but the description itself contributes little.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence and is front-loaded with the action. 'Through the public Yardstick API' is unnecessary filler, but overall the text is efficient and easy to parse. It earns a 4 because it is concise, even though it does not carry much 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?
With eight parameters, zero schema descriptions, no required parameters, and no output schema, this one-sentence description is severely incomplete. An agent has no way to know which fields make sense together, what each identifier represents, how idempotency works, or what the API returns on success. This is far below the minimum needed 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% and the description names none of the eight parameters. An agent cannot infer the meaning of request_id, idempotency_key, resume_url, linkedin_url, notes, or phone from the description. The schema gives types and constraints but no semantic guidance, and the description does not 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 action ('Create') and a resource ('a person'), which is enough to tell it apart from sibling tools like yardstick_people_list, yardstick_people_read, and yardstick_people_update. It does not go beyond the title, but it is not ambiguous or misleading. The phrase 'through the public Yardstick API' is filler rather than differentiator, so it falls just 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 guidance about when to use this tool versus alternatives such as yardstick_people_update or yardstick_prospects_create. The description simply restates the action. A tool with many siblings would benefit from at least a note about whether this creates candidates/talent-pool members versus prospects, but none is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_people_documents_download_urlGet a person document download linkARead-onlyIdempotentInspect
Mint a signed download URL for one person document. Read-only. The URL expires in 5 minutes and is a bearer link: do not log or share it. Takes per_ and pdoc_ display ids.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| request_id | No | ||
| document_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive profile, but the description adds real operational context: the link expires in 5 minutes and is a bearer link that must not be logged or shared. That security caveat is exactly the kind of disclosure annotations cannot convey. Minor gap: nothing about permission requirements for generating the link.
Agents need to know what a tool does to the 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 tight sentences, front-loaded with the core action and followed by the operational caveat. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately implies the return value (a signed URL) and covers expiry and handling. It is nearly complete for a low-complexity three-parameter tool, missing only a note on the request_id parameter and any error/expiry behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden and largely does: it tells the agent the ids are 'per_' and 'pdoc_' display ids, mapping to person_id and document_id. The third parameter (request_id) is left unexplained in both schema and description, so it does not fully 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 and resource: 'Mint a signed download URL for one person document.' An agent can immediately tell this apart from yardstick_people_documents_list, which enumerates documents rather than producing a link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only implied: the agent is expected to infer that this is called after listing documents when an actual downloadable link is needed. No alternative or precondition (e.g. 'use list first to obtain pdoc_ ids') is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_people_documents_listList documents for a personARead-onlyIdempotentInspect
List the documents attached to a person (resumes and other files). Archived documents are excluded unless include_archived is true. Takes a per_ display id and returns pdoc_ display ids.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| request_id | No | ||
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new behavior: archived documents are filtered out by default and the return values are pdoc_ display ids, which the agent could not infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core purpose front-loaded and no filler. Slightly dense with id-format detail in the final sentence, but all content 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, the description usefully characterizes the return shape (pdoc_ display ids). It omits any pagination or result-size behavior, which is a minor gap for a list endpoint but 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?
Schema coverage is 0%, so the description carries the burden. It explains include_archived's filtering effect and the per_/pdoc_ display-id formats, but leaves request_id completely undocumented, so it only partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List), resource (documents attached to a person), and scopes the resource ('resumes and other files'). It is readily distinguishable from the sibling yardstick_people_documents_download_url, which fetches rather than enumerates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 default behavior of excluding archived documents unless include_archived is true gives implied usage context, but there is no explicit statement of when to prefer this tool over people_read or the download_url sibling. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_people_listList peopleBRead-onlyIdempotentInspect
List people visible to the current principal. Pass email to find the exact person behind a candidate_email_conflict.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world hint, so the safety profile is covered. The description usefully adds that visibility is permission-scoped to the current principal, but says nothing about pagination behavior (limit/starting_after) or result shape, so it adds only modest value beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with what the tool does and followed by the key parameter guidance. 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?
No output schema exists, so the description must carry more of the load, yet it omits pagination semantics, the meaning of request_id, and the default ordering/limit. For a 4-parameter, 0%-documented listing endpoint, the two sentences are not enough for an agent to call 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% for four parameters. The description only explains email (and only its conflict-resolution use, not that it filters by exact address); limit, starting_after and request_id are left completely undocumented in both schema and description, which is a significant gap for a paginated list 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?
States a specific verb and resource (list people) plus a meaningful scope qualifier: results are limited to people visible to the current principal. It does not explicitly differentiate itself from sibling reads such as yardstick_people_read or yardstick_applications_list, 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?
It gives one concrete usage case: pass email to resolve the person behind a candidate_email_conflict. However, it never says when to use this list tool versus yardstick_people_read or why a caller would alias/filter rather than list, and gives no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_people_readRead a personARead-onlyIdempotentInspect
Read one person by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the nuance that the lookup uses a 'public id' (as opposed to an internal id), which is helpful. However, it does not disclose response format, error behavior, or any special permissions needed, but given annotation coverage, this is acceptable.
Agents need to know what a tool does to the 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. It front-loads the action and resource, and the identifier type is included without unnecessary words. Every part 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 read-by-ID tool, the description gives the essential action, but with no output schema, no parameter descriptions for request_id, and no detail on what fields are returned or how to interpret the response, an agent may struggle to use it correctly. The missing request_id semantics and return structure are notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It partially explains person_id as a 'public id' but gives no format or source for it. The request_id parameter is completely undocumented in both schema and description, leaving an agent to guess its purpose (likely correlation/tracing). The description adds meaning for one of two parameters only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('one person by public id'), clearly distinguishing it from sibling tools like yardstick_people_list (which reads multiple) and yardstick_people_create/update. The identifier type ('public id') adds precision beyond the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 fetching a single person by ID, but does not explicitly state when to use this over alternatives such as yardstick_people_list or when not to use it. There is no exclusionary guidance or mention of alternative tools; the differentiation rests on the word 'one'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_people_updateUpdate a personCDestructiveIdempotentInspect
Update one person with schema-bound public API fields.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| No | |||
| notes | No | ||
| phone | No | ||
| person_id | Yes | ||
| request_id | No | ||
| resume_url | No | ||
| linkedin_url | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, idempotentHint=true, and destructiveHint=true, so the safety profile is established by structured data. The description adds only the vague constraint 'schema-bound public API fields' and does not clarify partial update semantics, nulling behavior, or side effects. This is acceptable 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 one short sentence and front-loads the core action. It is efficient, though 'schema-bound public API fields' is jargon that could be clearer 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?
For an update tool with nine parameters, no output schema, and destructive/idempotent annotations, the description is too thin. It does not explain how to identify the person, which fields are updatable, what nulls mean, or how idempotency works.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters, but it does not. Property names and types are somewhat self-explanatory, yet the description adds no detail about person_id, idempotency_key, request_id, null values, or how fields 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 clear action and resource: 'Update one person.' This distinguishes it from sibling people tools like create, list, and read. However, 'schema-bound public API fields' is vague and does not explain what those fields are or how the update behaves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 people_create, people_read, or people_list. The verb 'Update' implies an existing person, but no explicit usage context, 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.
yardstick_pipelines_assign_to_jobAssign a hiring pipeline to a jobBDestructiveIdempotentInspect
Assign a pipeline to a job (jobs.pipeline_template_id) or clear it with pipeline_id: null. Pipeline validated by org; job resolved by org+mode.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| request_id | No | ||
| pipeline_id | Yes | ||
| stage_mapping | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a destructive, idempotent, non-read-only mutation, so the bar is lower. The description adds useful behavior: pipeline validation by org and job resolution by org+mode, plus the clear-with-null action. It still does not explain what assignment overwrites or how stage_mapping and idempotency behave.
Agents need to know what a tool does to the 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 covers the main action and the clear case without filler. It is dense but appropriately sized for a tool definition, though the parenthetical and validation clauses make it slightly packed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 five-parameter mutation with a nested stage_mapping object and no output schema, the description covers only the core assignment/clear behavior. It leaves stage_mapping, idempotency_key, and request_id unexplained, which is a significant gap 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 carry parameter meaning, and it partially does for job_id and pipeline_id. It says nothing about request_id, idempotency_key, or the nested stage_mapping object, leaving three of five parameters without any 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 states a specific verb and resource: assign a pipeline to a job, and explicitly covers the clear case with pipeline_id: null. It is clear in isolation, but it does not differentiate from the sibling yardstick_pipelines_assign_to_job_preview, so an agent gets no direct routing hint between previewing and applying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining both assignment and clearing via null, which is more than nothing. However, it gives no when-not conditions and does not mention the preview alternative or any prerequisites for choosing this tool over yardstick_pipelines_assign_to_job_preview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_pipelines_assign_to_job_previewPreview assigning a hiring pipeline to a jobARead-onlyIdempotentInspect
Preview the job's stages in use, candidate counts and suggested same-name mapping before changing its pipeline. Makes no changes.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| request_id | No | ||
| pipeline_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered without the description. This description goes further by disclosing what the preview actually reports (stages in use, candidate counts, suggested same-name mapping), which is real behavioral content not present in annotations or any 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?
A single front-loaded sentence that opens with the verb and scope, then adds the no-side-effects guarantee as a short trailing clause. No padding, no restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description usefully summarizes the return payload via the enumerated preview contents, and annotations carry the safety profile. What is missing is any explanation of the three input parameters, particularly request_id, leaving the caller to infer their roles.
Complex tools with many parameters or behaviors need more documentation. 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 three parameters, so the description must carry the burden and does not. job_id and pipeline_id are only obliquely implied ('the job's', 'its pipeline'), and request_id is never mentioned at all — its purpose (idempotency/dedup key) is left entirely to guesswork.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Preview') and resource ('assigning a hiring pipeline to a job'), and enumerates what the preview surfaces: stages in use, candidate counts, and same-name mapping. The phrase 'before changing its pipeline' implicitly distinguishes it from the bind sibling yardstick_pipelines_assign_to_job, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'before changing its pipeline' gives clear temporal context for when to call this: prior to the actual assignment. Combined with 'Makes no changes,' an agent can infer this is the safe pre-flight step. No explicit alternatives or exclusions are named, but the convention in this toolset (every *_bind has a *_preview) is reinforced rather than contradicted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_pipelines_cloneClone a hiring pipelineAInspect
Clone a pipeline and its stages. Set copy_rules to copy its workflow rules too (requires automation_rules:write). Returns rules_copied.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| slug | Yes | ||
| copy_rules | No | ||
| request_id | No | ||
| pipeline_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-idempotent, non-open-world behavior. The description adds permission context ('requires automation_rules:write') and return behavior ('Returns rules_copied'), which goes beyond annotations. However, it omits what gets copied by default, whether overriding the source or side effects on the original pipeline.
Agents need to know what a tool does to the 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 the core action front-loaded and the copy_rules caveat immediately after. No filler, though one more sentence could have covered required parameter semantics without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6-param mutation tool with 0% schema coverage and no output schema, the description covers the action, one optional flag, a permission prerequisite, and one return field. It leaves important gaps: what the clone defaults inherit, semantics of pipeline_id/name/slug, and idempotency key behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies copy_rules' effect and the automation_rules:write requirement but says nothing about required pipeline_id/name/slug semantics, request_id, or idempotency_key, leaving four of six parameters 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?
States a specific verb ('Clone') plus the resource ('a pipeline and its stages') and an optional extension ('copy its workflow rules too'). Distinguishable from yardstick_pipelines_create and yardstick_pipelines_update since cloning is an explicit duplicate 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?
The conditional 'Set copy_rules to copy its workflow rules too' implies when to enable rule copying, which is useful context but not an explicit when-to-use vs alternative. It does not say when to choose clone over creating a new pipeline 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.
yardstick_pipelines_createCreate a hiring pipelineAInspect
Create a custom pipeline template with optional inline stages. Does not affect the org default pipeline or candidate tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| slug | Yes | ||
| stages | No | ||
| request_id | No | ||
| description | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate it is not read-only and not destructive. The description adds value by specifying that it creates a template and explicitly guarantees no side effects on the default pipeline or candidate tracking, which is a meaningful behavioral disclosure beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two short sentences that are front-loaded with the core purpose. There is zero redundancy and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and zero schema descriptions, the description is grossly insufficient. It does not guide the agent on how to construct the 'stages' array, the meaning of 'slug' patterns, the use of 'idempotency_key', or any request/response details. An agent cannot reliably call 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%, so the description must compensate for missing parameter explanations. It only mentions 'optional inline stages' but does not explain the required 'name' and 'slug' parameters, nor optional ones like 'request_id', 'idempotency_key', or 'description'. The description adds no semantic value for any parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a custom pipeline template'), and adds 'optional inline stages' to specify the scope. This distinguishes it from sibling pipeline tools like yardstick_pipelines_update, yardstick_pipelines_list, and yardstick_pipelines_stages_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 that this is for creating a custom pipeline and explicitly clarifies it does not affect the org default pipeline or candidate tracking, which is a useful exclusion. However, it does not explicitly name alternative tools or state when not to use this tool, so it falls 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.
yardstick_pipelines_listList hiring pipelinesARead-onlyIdempotentInspect
List the organization's pipeline templates with their ordered stages. Canonical default stages are flagged canonical_locked.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and no destructive behavior, so the description adds no new safety-related trait. It does add useful context about ordered stages and the canonical_locked flag, but does not disclose further behavior such as filtering, pagination, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence stating the action and resource immediately, with a second sentence adding a useful data detail. There is no filler, repetition, or 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 simple read-only list with one optional parameter and no output schema, the description covers what is listed and key return semantics (ordered stages and canonical_locked flag). It does not mention pagination or whether inactive or archived templates are included, but these are minor for this straightforward list.
Complex tools with many parameters or behaviors need more documentation. 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, request_id, is optional and undocumented, and schema description coverage is 0%. The description does not mention it, but because request_id is generic and self-explanatory, this is not a major usability gap. Still, the description adds no parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), a specific resource ('the organization's pipeline templates'), and elaborates that ordered stages and the canonical_locked flag are included. This clearly distinguishes it from sibling read/create/update pipeline tools and 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 scope ('organization's pipeline templates') and list verb make the intended use clear against single-item read and mutation siblings. It does not explicitly name exclusions or tell the agent to prefer yardstick_pipelines_read for a single pipeline, 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.
yardstick_pipelines_readRead a hiring pipelineARead-onlyIdempotentInspect
Read one pipeline template and its ordered stages by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| pipeline_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds that it returns 'ordered stages', which is a useful behavioral detail beyond the annotations. However, it doesn't describe what happens if the pipeline_id is not found or the response format, but for a read tool with strong annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, 12 words, front-loaded with the verb and resource. Every word earns its place. The key scoping detail ('by public id') is included. 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?
For a simple read tool with 2 params (1 required), no output schema, and strong annotations, the description is mostly complete. The main gap is the undocumented request_id parameter and lack of error/not-found behavior. But given the simplicity and annotation coverage, it's a minimum viable 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%, so the description must compensate. The description mentions 'by public id', which maps to the pipeline_id parameter, adding meaning beyond the schema's bare 'pipeline_id' string. However, it doesn't explain the request_id parameter at all, and with 0% schema coverage, the description only partially compensates for the 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?
The description states a specific verb ('Read') and resource ('one pipeline template and its ordered stages by public id'). It clearly identifies what the tool does. It doesn't explicitly differentiate from sibling tools like yardstick_pipelines_list, but the singular 'one' and 'by public id' make the read-by-id purpose 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 implies usage: use this when you need a single pipeline template and its stages by public id. It doesn't explicitly state when to use alternatives like yardstick_pipelines_list (for listing) or yardstick_pipelines_read (if it existed). The context is clear enough for a simple read operation, but no explicit exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_pipelines_reorder_stagesReorder hiring pipeline stagesADestructiveIdempotentInspect
Reorder all stages of a pipeline by supplying the complete stage id order. Constraint-safe; allowed for canonical stages.
| Name | Required | Description | Default |
|---|---|---|---|
| stage_ids | Yes | ||
| request_id | No | ||
| pipeline_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description does not need to repeat those. The description adds 'Constraint-safe; allowed for canonical stages,' which provides some additional context about limitations, but it is vague and does not explain what constraints are checked or what 'canonical stages' means. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of two short sentences. It front-loads the main action and does not contain any filler or redundant information. Every word serves a purpose, making it 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 destructive mutation tool with 4 parameters and no output schema, the description is minimal. It does not mention error behavior when an incomplete stage_ids list is provided, prerequisites (e.g., pipeline must exist), or the meaning of 'constraint-safe' and 'canonical stages'. It also does not explain side effects or what the response looks like. Given the lack of schema descriptions, this is insufficient for an agent to call the tool confidently without further 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 gives meaning to stage_ids (the complete order of stage ids) and pipeline_id (the pipeline being reordered), which is helpful. However, it does not explain the optional parameters request_id and idempotency_key, nor does it detail the format or validation of stage_ids beyond 'complete order'. The description provides some semantics but not comprehensive coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: reorder all stages of a pipeline by supplying the complete stage id order. It is specific about the verb (reorder), the resource (stages of a pipeline), and the mechanism (complete order). This distinguishes it from sibling tools like stages_create or stages_update, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 reordering stages, not for creating or deleting them. However, it does not explicitly mention alternatives or when not to use this tool. The phrase 'Constraint-safe; allowed for canonical stages' hints at a restriction but doesn't explain when to use this vs other pipeline stage tools. Usage guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_pipelines_stages_createAdd a stage to a hiring pipelineBInspect
Append (or insert at a position) a stage to a pipeline with a kind and optional approval scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| slug | Yes | ||
| position | No | ||
| request_id | No | ||
| stage_kind | Yes | ||
| is_terminal | No | ||
| pipeline_id | Yes | ||
| approval_scope | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only mutation (readOnlyHint=false) and non-destructive behavior. The description adds the nuance that the stage is appended or inserted at a position and may carry an approval scope. However, it does not disclose side effects, ordering constraints, terminal-stage behavior, or idempotency semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that front-loads the core action ('Append or insert') and then adds qualifiers. There is no filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with 9 parameters, no output schema, and minimal annotation detail, this description is too sparse. It omits how position is interpreted, how terminal kind or is_terminal interact, what idempotency_key is for, and what the caller should expect after invocation, so an agent cannot fully rely on 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?
With 0% schema description coverage, the description must compensate for 9 parameters but only mentions 'kind' and 'approval scope', with position only implied. It does not explain pipeline_id, name, slug semantics, position interpretation, is_terminal, request_id, or idempotency_key, leaving most of the parameter burden 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 clearly names the action ('Append'/'insert'), the resource ('a stage to a pipeline'), and the key qualifiers (kind, approval scope). It distinguishes the operation from updating or deleting stages by the create/append wording, though it does not explicitly name 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?
No guidance is given about when to use this tool versus siblings such as yardstick_pipelines_stages_update, yardstick_pipelines_stages_delete_bind, or yardstick_pipelines_reorder_stages. It states only what the tool does, not the conditions or preconditions for choosing it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_pipelines_stages_delete_bindConfirm and delete a hiring pipeline stageBDestructiveIdempotentInspect
Bind an approved pipeline-stage delete with explicit approval metadata and a matching idempotency key. Refuses while candidates remain.
| Name | Required | Description | Default |
|---|---|---|---|
| binding | Yes | ||
| stage_id | Yes | ||
| request_id | No | ||
| pipeline_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=false, destructiveHint=true, and idempotentHint=true, and the description is consistent with them. Beyond that, it adds genuinely new behavioral context: the operation requires 'explicit approval metadata', is gated by a 'matching idempotency key', and 'refuses while candidates remain' — a guard condition an agent needs before calling. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, primary action front-loaded and the guard condition second — every word earns its place. The structure is efficient, though the brevity itself contributes to the parameter-semantics gap; it is concise rather than complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high-complexity tool — a nested required binding object, five required fields with zero schema descriptions, and no output schema — yet the description is only 24 words. It omits the two-phase preview/bind flow, what each binding field means, what the 'matching idempotency key' must match, and what a successful delete returns. The description is not complete enough for an agent to invoke this tool 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 for 5 top-level parameters plus a 5-field nested binding object. The phrases 'explicit approval metadata' and 'matching idempotency key' give general meaning to the binding object and idempotency_key, but preview_hash, approved_action_key, approved_input_hash, resource_version_precondition, and request_id remain entirely unexplained. This partial compensation is too thin for a 0%-coverage 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 verb and resource — 'bind an approved pipeline-stage delete' — and the title confirms this is the confirm-and-delete step for a hiring pipeline stage. It clearly conveys the approval-gated nature of the operation, but it never names the sibling yardstick_pipelines_stages_delete_preview or explains how the two-phase bind/preview pattern works, so no explicit sibling differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 supplies one explicit usage condition — 'Refuses while candidates remain' — which tells an agent when the call will be rejected. However, it does not state that this bind step should follow yardstick_pipelines_stages_delete_preview, nor does it explain when to prefer the preview tool over this one. The when-to-use guidance is implied by 'approved' rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_pipelines_stages_delete_previewPreview deleting a hiring pipeline stage (nothing changed yet)CIdempotentInspect
Preview deleting a pipeline stage; returns the candidate-count impact and binding fields. Canonical default stages are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| stage_id | Yes | ||
| request_id | No | ||
| pipeline_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation Contradiction: the title and description present this as a non-mutating preview ('nothing changed yet', 'preview deleting'), but the annotations declare readOnlyHint: false, suggesting the tool may mutate state. The description also does not clearly disclose the safe preview behavior in its own body, relying on the title, and the contradiction undermines trust in the tool's side-effect 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 appropriately short and front-loaded with the core action and outcome. The second sentence adds a meaningful constraint. It earns its place, though the structure is simple and the 'nothing changed yet' message appears only in the title, not the description body.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the purpose, the key output, and a rejection rule, which is useful. But with no output schema and only 0% schema coverage, it omits details about the return shape, the meaning of 'binding fields', and the role of the optional idempotency/request parameters. It is adequate for a simple preview call but leaves gaps an agent may need to resolve.
Complex tools with many parameters or behaviors need more documentation. 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 undocumented parameters. It helps identify pipeline_id and stage_id implicitly by talking about a 'pipeline stage', but it says nothing about request_id or idempotency_key, and it does not explain how the two required parameters interact or which stage_ids are valid beyond 'canonical default stages are rejected'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: preview deleting a pipeline stage, and names the key output (candidate-count impact and binding fields). It is clear, but it does not explicitly name or contrast the sibling delete_bind tool, so differentiation relies on inference from the word 'preview' and the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 it: before actually deleting a stage, to see impact and binding fields. It also gives one exclusion: canonical default stages are rejected. However, it does not explicitly say 'use this before delete_bind' or describe when the alternative bind tool should be chosen instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_pipelines_stages_updateEdit a hiring pipeline stageADestructiveIdempotentInspect
Edit a pipeline stage. Canonical default stages allow display-name change only; slug/stage_kind/approval_scope/is_terminal are locked.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| slug | No | ||
| stage_id | Yes | ||
| is_active | No | ||
| request_id | No | ||
| stage_kind | No | ||
| is_terminal | No | ||
| pipeline_id | Yes | ||
| approval_scope | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and idempotent. The description adds valuable behavior beyond that: canonical default stages only allow display-name changes, and slug/stage_kind/approval_scope/is_terminal are locked. This gives the agent important expectations that the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The action is front-loaded and the critical constraint about locked fields follows immediately. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally adequate for invoking the tool, especially with the schema and annotations available. Still, it omits what happens when locked fields are attempted, what custom stages allow, and any guidance about destructive effects beyond the annotation flag.
Complex tools with many parameters or behaviors need more documentation. 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 partially compensates by indicating that 'display-name' corresponds to the name field and that slug, stage_kind, approval_scope, and is_terminal are locked for canonical defaults. However, it says nothing about required pipeline_id/stage_id, is_active, request_id, or idempotency_key, so several parameters remain semantically underexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Edit a pipeline stage', which is a clear verb + resource pair and matches the title. It does not explicitly name sibling tools like stages_create or stages_delete, but the update operation and stage resource are obvious enough to disambiguate at a high 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?
There is no guidance about when to use this tool as opposed to creating, deleting, reordering, or reading pipeline stages. The canonical-default constraint is useful but does not explain selection criteria, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_pipelines_updateUpdate a hiring pipelineADestructiveIdempotentInspect
Rename, re-describe, or toggle active for one pipeline template.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| is_active | No | ||
| request_id | No | ||
| description | No | ||
| pipeline_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnly=false, destructiveHint=true, and idempotentHint=true, so the safety profile is covered. The description adds the intent to modify fields but doesn't disclose side effects such as what deactivating a template affects or whether any operation is irreversible; it neither contradicts nor significantly extends the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the resource and the three supported update operations with 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?
For a mutating tool with six parameters, no parameter descriptions, and no output schema, this description is too thin. It does not clarify which fields may be combined, what the response contains, or what consequences deactivating a pipeline template has, leaving an agent to infer essential call 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 maps 'rename', 're-describe', and 'toggle active' to name, description, and is_active, but it says nothing about required pipeline_id or the request_id/idempotency_key fields, and it doesn't state whether at least one field must be provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('update') and resource ('pipeline template') and enumerates the exact operations: rename, re-describe, toggle active. This clearly differentiates it from related siblings like pipelines_create, pipelines_read, and pipelines_reorder_stages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 operation list implies when to use the tool (when changing name, description, or active flag), but it gives no explicit guidance on when not to use it or which alternative to prefer. It also doesn't clarify whether stage-level changes belong to pipelines_stages_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospect_activities_createLog prospect activityCInspect
Create a bounded internal prospect activity note or touchpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| metadata | No | ||
| request_id | No | ||
| occurred_at | No | ||
| prospect_id | Yes | ||
| source_label | No | ||
| activity_type | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the agent knows this is a mutating, non-idempotent operation. The description adds only 'bounded internal,' which hints at constraints but doesn't disclose side effects, permission requirements, or whether the activity appears immediately in list calls. No contradiction, but no meaningful additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant fluff, which is structurally concise. However, it is under-specified for a tool with 8 parameters and no schema descriptions. The sentence does earn its place by stating purpose, but it could (and should) be longer to be genuinely 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?
With 8 parameters, 0% schema coverage, no output schema, and no usage guidance, the description is grossly incomplete. An agent cannot correctly invoke this tool without external knowledge about required fields, activity types, idempotency, and side effects. The description is far too minimal for the 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%, so the description must compensate for undocumented parameters. It fails to explain any of the 8 parameters, including required prospect_id, the meaning of activity_type values, idempotency_key usage, or the roles of body, metadata, request_id, occurred_at, and source_label. The phrase 'note or touchpoint' only loosely maps to one enum value and gives no practical parameter 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 uses a specific verb ('Create') and resource ('prospect activity note or touchpoint'), and 'bounded internal' distinguishes it from broader activity tools. It clearly identifies this as the creation counterpart to yardstick_prospect_activities_list. However, the phrase 'bounded internal' is vague and could confuse an agent about scope and 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?
There is no guidance on when to use this tool versus alternatives, no mention of prerequisites (e.g., an existing prospect), and no indication of what distinguishes it from creating a prospect, person, or other entity. The description leaves the agent without contextual clues for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospect_activities_listList prospect activityCRead-onlyIdempotentInspect
List bounded activity records for one Talent CRM prospect.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| prospect_id | Yes | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered without the description. The description adds the constraint that the list is 'bounded', hinting at pagination semantics, but doesn't disclose ordering, response shape, or how the bound works. This matches the baseline where annotations carry the safety burden.
Agents need to know what a tool does to the 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 verb and resource appear immediately. The term 'bounded' is doing deliberate work, though it could be clearer; one informative sentence is efficient without being under-specified to a fault.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0% schema description coverage, no output schema, and pagination parameters present, the one-sentence description is insufficient. An agent cannot determine what 'bounded' means operationally (page size semantics, cursor handling via starting_after), what activity types are returned, or what the response contains. The tool is simple but still needs more detail to be reliably invoked.
Complex tools with many parameters or behaviors need more documentation. 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 undocumented parameters. It does not explain limit, starting_after, request_id, or prospect_id beyond what the schema types show. 'Bounded' loosely maps to limit/starting_after but is never made explicit, leaving the pagination contract unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('activity records for one Talent CRM prospect'), which is clear and distinguishes it from the sibling writer yardstick_prospect_activities_create. However, the adjective 'bounded' is ambiguous and no sibling is named explicitly, so it doesn't reach 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. It doesn't mention that the create counterpart should be used for writing new activity records, nor any pagination-related decision points like how to retrieve the next page. The intended usage is only implied by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospect_imports_applyConfirm and apply a prospect importAIdempotentInspect
Apply an approved Prospect CRM import preview with preview_hash and explicit row decisions for advisory matches.
| Name | Required | Description | Default |
|---|---|---|---|
| decisions | No | ||
| import_id | Yes | ||
| request_id | No | ||
| preview_hash | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that the tool is idempotent and non-destructive. The description adds context about the prerequisite ('approved') and the requirement for explicit row decisions, which goes beyond the annotations. It does not fully describe side effects (e.g., creating or linking prospect records), but the decision enum in the schema covers this.
Agents need to know what a tool does to the 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 key inputs without any fluff or repetition. 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?
The tool has a complex decisions array and requires a workflow (dry-run → approve → apply), but the description assumes knowledge of that flow. It does not explain how to obtain preview_hash, the meaning of import_id, how decisions are applied, or what the return value is (no output schema). This is incomplete for an agent to safely call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all parameters. It only mentions preview_hash and row decisions, leaving import_id (required), request_id, and idempotency_key unexplained. This is a significant 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 states a specific action ('Apply'), a clear resource ('approved Prospect CRM import preview'), and key inputs ('preview_hash' and 'explicit row decisions'). It differentiates itself from siblings like prospect_imports_dry_run by using 'apply' versus 'dry_run', so an agent can immediately tell this is the committing 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 phrase 'approved preview' clearly implies the tool should be used only after a preview has been generated and approved, providing context for when to call it. However, it does not explicitly name alternatives or state when *not* to use it, 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.
yardstick_prospect_imports_dry_runPreview a prospect import (no records written)BIdempotentInspect
Preview a structured-row Prospect CRM import. JSON rows only; no raw CSV/resume file reads, outreach, application conversion, source ranking, or silent person merge.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| metadata | No | ||
| request_id | No | ||
| source_label | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description and title present a non-mutating preview ('Preview... no records written'), while the annotation readOnlyHint=false says the tool is not read-only; that directly conflicts with the described no-write behavior. The otherwise useful exclusions (no CSV/resume, no silent merge) cannot compensate for the contradictory safety signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the purpose and pack exclusions into a tight list. There is no filler or repeated schema 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 a rich nested schema, five parameters, and no output schema, the description does not say what the preview returns, how validation errors/results are presented, or how idempotency_key/metadata affect behavior. The exclusions help scope the operation, but an agent cannot predict the invocation outcome.
Complex tools with many parameters or behaviors need more documentation. 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 prose must carry parameter meaning, but it only clarifies that rows must be JSON and that files are not accepted. It does not explain idempotency_key, metadata, source_label, request_id, or field semantics like pool_ids vs pool_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 action and object ('Preview a structured-row Prospect CRM import') and immediately draws boundaries with exclusions ('no raw CSV/resume file reads, outreach, application conversion, source ranking, or silent person merge'). This separates it from the many preview/import/dry-run 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 context for use: this is the JSON-rows-only, dry-run preview path, not a raw file import or an action like outreach/conversion. It does not explicitly name the apply counterpart as an alternative, so the routing guidance is good but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospect_imports_readRead a prospect import batchBRead-onlyIdempotentInspect
Read one Prospect CRM import dry-run/apply batch by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| import_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's 'Read' is consistent. It adds that the batch is accessed 'by public id' and covers both dry-run and apply batches, but does not describe error behavior, response format, or what happens if the batch is 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?
A single, front-loaded sentence that states the verb and resource without any filler. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one required parameter, the description is adequate but incomplete. It lacks explanation of the optional request_id, what the response contains, and any edge-case behavior. Annotations cover safety, but the description doesn't fully equip the agent 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 explain the parameters. It implies import_id is the public id but never explicitly names it, and request_id is entirely omitted. The description provides minimal value beyond the schema's field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Read), the resource (Prospect CRM import dry-run/apply batch), and the key identifier (public id). It distinguishes from the sibling apply/dry-run tools by being a read operation, though it does not explicitly call out alternatives like yardstick_ats_imports_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings like prospect_imports_dry_run or apply, nor when the optional request_id parameter should be provided. The context implies a read scenario but no alternatives or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospects_convert_bindConfirm and convert a prospect into an applicationBDestructiveIdempotentInspect
Bind an approved prospect conversion preview with explicit approval metadata and matching idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| binding | Yes | ||
| request_id | No | ||
| prospect_id | Yes | ||
| source_label | No | ||
| job_posting_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is non-read-only, destructive, and idempotent, so the description does not need to restate those. It adds useful context that approval metadata and a matching idempotency key are required to execute the conversion. It does not, however, explain what destructive effect the conversion has, such as whether the prospect is removed or archived.
Agents need to know what a tool does to the 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 is appropriately front-loaded with the main action. It is concise, though its brevity comes at the cost of explaining important semantics like what 'bind' means and how the binding object is obtained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 seven parameters, a nested required binding object, no output schema, and zero schema descriptions. The description does not explain the preview-to-bind workflow, how approval metadata is obtained, failure conditions, or the post-conversion state. It is not complete enough for an agent to understand the operation's place in the broader convert flow.
Complex tools with many parameters or behaviors need more documentation. 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 absence of parameter documentation. It only vaguely references 'approval metadata' and 'matching idempotency key', which gestures at the binding object and idempotency_key relationship, but it does not explain the required nested fields, note, source_label, or request_id. An agent would struggle to construct a valid request from this 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 names a specific verb and resource: 'Bind an approved prospect conversion preview', and the title clarifies the outcome is converting a prospect into an application. This distinguishes it as the confirm/execute counterpart to the preview tool, though 'bind' alone is somewhat jargon-heavy and the description does not explicitly say the prospect becomes an application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'approved prospect conversion preview' implies this is the second step after a preview has been generated, and 'matching idempotency key' implies a required pairing. However, the description never explicitly names the preview alternative or states when not to use this tool, so the usage guidance is only implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospects_convert_previewPreview converting a prospect into an application (nothing changed yet)AIdempotentInspect
Preview conversion of one Prospect into one canonical Application; bind fields are rejected and no outreach/import/merge occurs.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| request_id | No | ||
| prospect_id | Yes | ||
| source_label | No | ||
| job_posting_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include idempotentHint and destructiveHint, and the description adds that no outreach/import/merge occurs and bind fields are rejected. However, it does not explicitly state that no persistent changes are made or describe what result is returned, which is significant for a preview tool; the readOnlyHint is false, adding 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?
One sentence, front-loaded with the core purpose and scoped with exclusions. 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?
The tool has 6 parameters and no output schema, but the description doesn't state what a preview result looks like, how errors occur, or whether any state changes happen. It leaves the agent to infer too much 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?
With 0% schema description coverage, the description was expected to compensate, but it only hints at prospect_id and job_posting_id via 'Prospect' and 'Application'. It does not explain note, request_id, source_label, or idempotency_key, nor what 'bind fields' 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 action ('Preview conversion'), the resource ('one Prospect into one canonical Application'), and distinguishes from binding by noting 'bind fields are rejected'. This is specific and allows an agent to differentiate it from convert_bind and other preview 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 non-destructive preview before binding, but it does not explicitly name the alternative (convert_bind) or state when to use preview vs bind. No exclusion conditions are given beyond 'bind fields rejected', so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospects_createAdd a prospectCInspect
Create Talent CRM prospect relationship state for an existing person.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| request_id | No | ||
| source_label | No | ||
| owner_user_id | No | ||
| idempotency_key | No | ||
| last_reviewed_at | No | ||
| last_contacted_at | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description does not need to restate that this is a non-destructive write. It adds one useful behavioral constraint—'for an existing person'—implying person_id must reference an already-created person, but it does not disclose behavior around idempotency, failure modes, or what happens if the person already has a prospect 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 tight sentence with no filler and the key action front-loaded. It is concise, though brevity comes at the cost of omitting crucial parameter and usage 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?
For a tool with 7 parameters, 0% schema description coverage, no output schema, and no usage guidance, a one-sentence description is grossly insufficient. An agent has no way to understand what 'prospect relationship state' means, how to populate the optional fields, or what a successful 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%, so the description carries the full burden of explaining the 7 parameters. It explains none of them: person_id is only implicitly referenced, and request_id, source_label, owner_user_id, idempotency_key, last_reviewed_at, and last_contacted_at are entirely unexplained. An agent cannot infer their meaning or formatting from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('Talent CRM prospect relationship state') and scopes it to 'an existing person', which distinguishes it from people_create (which creates a person) and prospects_update (which modifies an existing prospect). The term 'relationship state' is somewhat jargony, but the core action 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?
No guidance is given on when to use this tool versus alternatives like yardstick_prospects_update, yardstick_prospects_convert_bind, or yardstick_people_create. There is no mention of prerequisites (e.g., the person must already exist) or conditions that would make a different sibling tool more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospects_listList prospectsBRead-onlyIdempotentInspect
List active Talent CRM prospects visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| owner_user_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds useful context: results are limited to active prospects and to those visible to the current principal. It does not disclose pagination behavior, filtering semantics, or response shape, but the core behavioral traits are communicated.
Agents need to know what a tool does to the 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 entire description is a single, front-loaded sentence with no wasted words. It names the resource, scope, and visibility constraint efficiently, earning its place 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 list tool with four parameters, no output schema, and zero parameter documentation, the description is too thin. It lacks any mention of pagination (starting_after, limit), owner filtering (owner_user_id), request correlation (request_id), or what the response contains. The annotations cover safety, but the practical calling context is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no explanation for any of the four parameters (limit, request_id, owner_user_id, starting_after). With no structured descriptions, the description is responsible for clarifying these, but it names none of them, leaving an agent to guess at pagination, filtering, and idempotency 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 clearly states the verb (List), the resource (Talent CRM prospects), and the scope (active, visible to the current principal). This distinguishes it from sibling tools like yardstick_people_list and yardstick_applications_list because it names the exact entity type and the filtering 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?
The phrase 'List active Talent CRM prospects visible to the current principal' implies when to use the tool: whenever the agent needs the current principal's visible active prospects. However, it gives no explicit exclusions, prerequisites, or guidance on when to choose this over related tools such as yardstick_prospects_read or yardstick_prospect_activities_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospects_outreach_create_draftDraft a prospect outreach email for reviewBIdempotentInspect
Create a pending review prospect outreach email draft. Sending stays on email draft send and requires communications:send.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| subject | No | ||
| request_id | No | ||
| prospect_id | Yes | ||
| job_posting_id | No | ||
| idempotency_key | No | ||
| outreach_intent_key | No | ||
| personalization_instruction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds useful behavioral context: the created draft is pending review, and actual sending is deferred to the email draft send step and requires 'communications:send'. This clarifies side effects and permission expectations. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose. Both sentences earn their place, though the phrase 'Sending stays on email draft send' is awkwardly worded. No unnecessary detail 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?
For a tool with 8 parameters, 0% schema description coverage, and no output schema, this description is far from complete. It communicates the high-level workflow but leaves critical invocation details—what each parameter means, what the response contains, and how the pending-review draft is referenced afterward—unexplained.
Complex tools with many parameters or behaviors need more documentation. 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 meaning. There are 8 parameters including opaque ones like request_id, idempotency_key, outreach_intent_key, and personalization_instruction, none of which are explained. The description completely 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 clearly states a specific verb and resource: 'Create a pending review prospect outreach email draft.' The phrase 'pending review' adds meaningful scope and distinguishes this from an actual send operation. It does not explicitly name an alternative sibling, but the behavior is clear 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?
The description implies when to use this tool: to create a draft for review, not to send it. 'Sending stays on email draft send' provides a useful boundary and points toward the separate send flow. However, it does not explicitly name an alternative tool or state conditions for choosing this over related prospect/email draft tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospects_outreach_previewPreview prospect outreach copy (nothing saved or sent)ARead-onlyIdempotentInspect
Preview a one-off prospect outreach draft without creating a draft, sending email, enrolling a sequence, or creating an application.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| subject | No | ||
| request_id | No | ||
| prospect_id | Yes | ||
| job_posting_id | No | ||
| idempotency_key | No | ||
| outreach_intent_key | No | ||
| personalization_instruction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value beyond those by naming the four specific actions that will NOT occur (draft creation, email send, sequence enrollment, application creation), giving concreteness to the read-only behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the operation ('Preview') followed by the essential safety exclusions. Every word earns its place; 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 tool with 8 parameters, 0% schema coverage, and no output schema, the description is too thin. It does not explain what the preview returns, whether output is rendered/personalized copy, how the optional parameters shape the preview, or the role of idempotency_key/request_id. An agent has enough to know it is safe, but not enough to invoke it 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 provides no parameter guidance for the 8 inputs. While body/subject/prospect_id are self-explanatory from context, request_id, idempotency_key, outreach_intent_key, personalization_instruction, and job_posting_id remain unexplained; with the schema covering nothing, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Preview a one-off prospect outreach draft') and explicitly enumerates what it does NOT do (creating a draft, sending email, enrolling a sequence, creating an application). This clearly distinguishes it from the close sibling yardstick_prospects_outreach_create_draft and other bind/apply tools, so an agent can select it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The negative side-effect list ('without creating a draft, sending email, enrolling a sequence, or creating an application') gives a strong when-to-use signal: this is the safe, non-committal preview variant. However, it never names the alternative tool (e.g., yardstick_prospects_outreach_create_draft) explicitly or states conditions like 'use this before committing to a draft,' so a small inference gap remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospects_readRead a prospectARead-onlyIdempotentInspect
Read one Talent CRM prospect by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| prospect_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral detail: the identifier is a 'public id', which distinguishes from internal ids. It does not describe return format or any side effects, but for a simple read operation with these annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. It is front-loaded with the core action and resource, and it is appropriately sized for a simple 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?
For a simple read operation with no output schema, the description is mostly adequate but leaves a few gaps: it does not mention what the response contains (the prospect object) or any authentication requirements, though these may be assumed. Given the simplicity and the annotations, it is close to complete but not fully detailed.
Complex tools with many parameters or behaviors need more documentation. 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 both parameters. It clarifies that prospect_id is a 'public id', which is valuable, but it provides no information about request_id (optional, presumably a request correlation id). With 0% coverage, the description should explain all parameters; it covers only one, so it 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 states a specific verb ('Read'), a specific resource ('prospect'), and a specific scope ('one ... by public id'). It clearly distinguishes from siblings like yardstick_prospects_list (which reads many) and yardstick_prospects_create (which creates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you have a specific public id and need a single prospect. It does not explicitly name alternatives or state when not to use it, but the context is clear from the verb and resource. It could benefit from an explicit pointer to list/create/update tools, but it is not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_prospects_updateUpdate a prospectCDestructiveIdempotentInspect
Update bounded Talent CRM prospect relationship fields.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| prospect_id | Yes | ||
| source_label | No | ||
| owner_user_id | No | ||
| archived_reason | No | ||
| idempotency_key | No | ||
| last_reviewed_at | No | ||
| last_contacted_at | No | ||
| next_follow_up_at | No | ||
| next_follow_up_note | No | ||
| relationship_status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'bounded' scope, which signals that only relationship fields are affected, but it does not disclose the destructive behavior implied by destructiveHint=true, such as archiving a prospect via relationship_status or archived_reason. The annotations already carry the safety profile, so this is not a complete 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 with no fluff. It is concise, though the phrase 'bounded Talent CRM prospect relationship fields' is slightly awkward and could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 11 parameters, no output schema, and a destructive hint, the description is too sparse to fully orient an agent. It lacks information about required fields, update semantics, retry behavior, and how archiving/review/follow-up fields 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, but it only says 'relationship fields' without explaining what those fields are, which fields can be set together, or the role of idempotency_key/request_id. The schema provides types and enums, but not enough semantic guidance for an 11-parameter update tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('prospect'), and narrows the scope to 'relationship fields,' which helps distinguish it from broader prospect operations like create/read/list. It is not as strong as explicitly naming a sibling, but it is 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?
There is no guidance about when to use this tool instead of alternatives such as yardstick_prospects_convert_bind or yardstick_people_update. The description implies updating prospect relationship data, but it does not state exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_reporting_searchSearch recruiting reportsCRead-onlyIdempotentInspect
Search redacted recruiting reporting summaries through the public reporting API.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| job_id | No | ||
| stages | No | ||
| statuses | No | ||
| request_id | No | ||
| role_label | No | ||
| score_band | No | ||
| stale_days | No | ||
| window_end | Yes | ||
| query_family | Yes | ||
| source_label | No | ||
| window_start | Yes | ||
| job_posting_id | No | ||
| starting_after | No | ||
| minimum_sample_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a genuinely useful fact — results are redacted and served through a public API — but says nothing about pagination behavior (starting_after/limit), rate limits, or what a result envelope 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?
A single well-formed sentence with no padding, and the key qualifiers ('redacted', 'public reporting API') are front-loaded. However, a one-liner is under-specified for a tool with fifteen parameters and a required eight-value enum; brevity here costs more than it saves.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 15 parameters, a required enum, and no output schema, the description leaves an agent unable to call the tool correctly on first try. It should at minimum enumerate the query families, the date-window format, and pagination, none of which appear.
Complex tools with many parameters or behaviors need more documentation. 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 15 parameters, and the description supplies no parameter meaning whatsoever. The critical query_family enum with eight opaque values, the date format for window_start/window_end, and pagination via starting_after/limit are all left entirely to guesswork.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Search redacted recruiting reporting summaries' via the public reporting API. It is the only reporting tool among the siblings, so no sibling differentiation is needed, but it never explains what a 'reporting summary' contains or that results are organized into eight distinct query families.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus alternatives, and no explanation of which of the eight query_family values to pick for a given question. Nothing tells the caller that window_start/window_end are mandatory or what kind of window makes sense.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_slack_connect_linkGet the Slack consent linkBInspect
Get the Slack consent link. Open it in a browser to connect. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the safety profile is partly covered. The description adds the useful auth constraint ('Admins only') and tells the agent what to do with the result, but omits link lifetime, whether repeated calls invalidate prior links, and what non-admins get — meaningful gaps for a non-idempotent, non-read-only call.
Agents need to know what a tool does to the 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 the purpose, then the action to take, then the constraint. No filler; each sentence carries distinct 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?
There is no output schema, and the description only loosely implies the return value is a URL. Missing pieces an agent would want for a non-read-only link-generation tool: link expiry/one-time semantics, behavior when already connected, and any meaning for the two undocumented 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 says nothing about either parameter. 'request_id' and 'idempotency_key' are opaque: the agent cannot tell whether request_id is a correlation handle or required for retry, nor what scoping the idempotency key applies to. With both undocumented, the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the Slack consent link'), which is clearly distinct from the other Slack siblings (disconnect, status, me, member_set). It does not explicitly say how it relates to slack_status (checking whether a connection already exists), so it falls just 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?
'Open it in a browser to connect' implies the workflow, and 'Admins only' gives a prerequisite. But there is no guidance on when to call it versus yardstick_slack_status or slack_me, nor on whether to call it if a connection already exists — usage 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.
yardstick_slack_disconnectDisconnect SlackBDestructiveIdempotentInspect
Disconnect Slack from this organization. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the bar is lower. The description usefully adds the admin-authorization requirement, but it does not disclose consequences of the teardown such as what happens to linked member mappings or stored settings. With annotations carrying the safety profile, this moderate add is a 3.
Agents need to know what a tool does to the 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, purpose front-loaded ahead of the admin constraint, with zero filler. Fully efficient for what it communicates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, irreversible-feeling mutation with no output schema and undocumented parameters, the description is too thin. It omits what disconnecting actually destroys or affects and leaves both parameters unexplained, which is a meaningful gap for an agent about to take a destructive action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (request_id, idempotency_key) have 0% schema description coverage, and the description says nothing about them. With low coverage the description must compensate, and it does not, so an agent gets no semantic guidance on either param.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Disconnect Slack from this organization.' An agent can immediately tell this is the teardown counterpart to the sibling connect/link and status tools. It stops short of explicitly naming those siblings, so it earns a 4 rather than 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?
'Admins only' conveys a hard prerequisite and implies the operation's scope, but there is no guidance on when to use this instead of yardstick_slack_status or slack_connect_link, and no note on when-not to disconnect. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_slack_meRead your Slack matchCRead-onlyIdempotentInspect
Read your Slack match. If unmatched, use "Connect my Slack" in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds only the unmatched-state hint and says nothing about what a "match" contains, whether multiple matches are returned, or how a missing match surfaces (empty result vs. error).
Agents need to know what a tool does to the 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, the core action front-loaded and the fallback immediately after. Efficient, though the brevity is partly under-specification rather than disciplined 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?
No output schema exists, so the description should explain the shape of a returned match and the unmatched case; it does neither. Combined with an undocumented request_id, an agent cannot call this confidently or interpret the result without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter, request_id, with 0% schema description coverage, and the description never mentions it. No hint on what a request_id is, whether it is optional (it is not in required), or when an agent should supply one.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb and resource ("Read your Slack match"), but "match" is ambiguous – the sibling set includes slack_status, slack_members_match, slack_member_set and slack_me_test, and the description does not distinguish this tool from any of them. An agent can roughly guess it returns the caller's own linked Slack identity, but the concept is not defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 second sentence gives a fallback path ("If unmatched, use 'Connect my Slack' in the app"), which is useful condition-based guidance. However it points at an in-app UI action rather than the sibling yardstick_slack_connect_link, and there is no guidance on when to prefer this over slack_status or slack_members_match.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_slack_member_setMatch a team member to SlackCDestructiveIdempotentInspect
Match one team member to Slack. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| request_id | No | ||
| slack_user_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state destructiveHint=true and idempotentHint=true; the description adds only the admin authorization requirement and says nothing about what is destroyed or replaced (e.g., whether an existing Slack link for that member is overwritten). For a tool the annotations flag as destructive, the absence of any wording about the effect on prior mappings is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short front-loaded sentences with no filler, which is structurally sound. The terseness is, however, under-specification rather than efficiency given the operation's destructive nature.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 0% parameter documentation, and a destructive, idempotent write, the description should cover what happens on re-invocation, what the idempotency key protects against, and the effect on any pre-existing mapping. None of that is present, so an agent cannot call this confidently without reading the schema 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% across four parameters. The description implies the two required inputs (a team member and a Slack user) but says nothing about request_id or idempotency_key, which are opaque names for a destructive idempotent operation and need explanation more than most. It only marginally 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?
"Match one team member to Slack" names a verb and a resource, so the general intent (link an internal user to a Slack identity) is inferable. However, the wording is nearly indistinguishable from the sibling tools yardstick_slack_members_match and yardstick_slack_member_unset, and the description never clarifies whether this creates, replaces, or upserts the link — a distinction the name ('set') only hints at.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Admins only" is a real precondition and is useful, but there is no guidance on when to use this versus yardstick_slack_members_match, yardstick_slack_member_unset, or yardstick_slack_members_list, all of which live in the same Slack-namespace cluster. The agent is left to guess which of four near-identical Slack-member tools to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_slack_members_listList team members and Slack matchesBRead-onlyIdempotentInspect
List team members and their Slack matches. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description's one genuine addition is the admin-only permission requirement, which annotations do not express. It says nothing about result volume, pagination, or ordering for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the core action is front-loaded. Size is appropriate; the brevity is close to under-specification rather than wasteful 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?
This is a read-only list with no output schema, so the description is the only place to learn what comes back (member identity plus matched Slack user) and whether results are paginated. It gives neither, leaving the agent to discover the response shape by 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?
Schema description coverage is 0% and the single request_id parameter is undocumented in both schema and description. The description does not explain whether request_id is a correlation token or an idempotency key, nor that it is optional.
Input schemas describe structure but not intent. Descriptions should explain 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: 'List team members and their Slack matches.' The listing scope separates it from the write-oriented siblings (slack_member_set, slack_member_unset, slack_members_match), though 'team members' is ambiguous between Slack workspace users and Yardstick users, which matters in a Slack namespace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admins only' gives an access precondition, which is real usage guidance. However, it never says when to prefer this over yardstick_slack_members_match (the tool that presumably creates those matches) or yardstick_slack_me, so the agent must infer the split.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_slack_members_matchMatch team members by emailCDestructiveIdempotentInspect
Match team members to Slack by email. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is largely covered. The description adds useful auth context with 'Admins only,' but it does not explain what matching does, what is destructive about it, or what happens to unmatched members.
Agents need to know what a tool does to the 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 and is front-loaded with the core action. It contains no filler, though the brevity leaves important behavioral and parameter details unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, idempotent mutation with two undocumented parameters and no output schema, the description is too sparse. It gives purpose and an admin restriction but omits matching semantics, request_id/idempotency behavior, and any explanation of the destructive side effects.
Complex tools with many parameters or behaviors need more documentation. 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 two parameters, request_id and idempotency_key, and the description mentions neither. With no compensation in the description, an agent gets no semantic guidance beyond the 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 and resource: 'Match team members to Slack by email.' It distinguishes itself from sibling listing/setting operations such as slack_members_list and slack_member_set by focusing on matching. However, 'match' remains slightly ambiguous about whether it maps all members or resolves specific identities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only usage guidance is 'Admins only,' which states a permission prerequisite but does not explain when to use this tool versus alternatives like slack_members_list or slack_member_set. There is no when-not guidance or reference to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_slack_member_unsetRemove a team member's Slack matchBDestructiveIdempotentInspect
Remove one team member's Slack match. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose destructiveHint=true and idempotentHint=true, so the description does not need to repeat those traits. It adds the admin-only authorization context, but it says nothing about reversibility, side effects on existing Slack mappings, or error behavior when no match is 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?
Two short sentences, front-loaded with the action and followed by the key authorization constraint. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive administrative mutation with three parameters, no parameter descriptions, and no output schema. The description supplies only the action and admin restriction, leaving important behavioral and parameter context 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%, so the description must carry parameter meaning. 'One team member' loosely implies the required user_id, but request_id and idempotency_key are entirely undocumented in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Remove one team member's Slack match.' It is clear enough to distinguish this from general Slack connection tools, though it does not explicitly name the sibling alternative yardstick_slack_member_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Admins only' gives a useful permission constraint, implying this is a privileged administrative action. However, it does not explain when to choose unset versus set, what preconditions must hold, or what happens if no Slack match exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_slack_me_testSend yourself a Slack test messageCInspect
Send yourself a Slack test message.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it doesn't say whether the message is a DM, whether it goes through an external Slack workspace, whether repeat calls send additional messages, or what the caller gets back. For a non-idempotent side-effecting tool this leaves real 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 short sentence, front-loaded and waste-free, but that is because it simply duplicates the title. Brevity here reflects under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 side-effecting tool with no output schema, no parameter documentation, and only generic annotations. The description should at minimum say what a successful test proves, whether Slack must be connected first, and whether repeated calls send repeated messages. None of that 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% and the description never mentions request_id or idempotency_key. With two undocumented parameters, the description should explain what the idempotency key does (especially since idempotentHint=false and repeat sends produce duplicate messages), but it says nothing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence names a specific verb and object ("send... a Slack test message") and, via the "yourself" framing, implies a self-targeted test. But it is essentially a verbatim copy of the title with no elaboration, and does not distinguish itself from adjacent Slack tools such as yardstick_slack_me, yardstick_slack_status, or yardstick_slack_connect_link beyond the word "test".
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this — e.g. to verify a Slack connection after yardstick_slack_connect_link, or to check delivery before relying on notifications. No preconditions (must Slack be connected?) and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_slack_statusRead Slack connection statusCIdempotentInspect
Read the Slack workspace name, connection state and connecting admin's user id. Admins only.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description and title both frame this as a read operation ('Read the Slack workspace name...'), but the annotations declare readOnlyHint=false. That is a direct contradiction for a status-reading tool and makes the safety profile unreliable. The description otherwise does not add meaningful behavioral context beyond the admin restriction.
Agents need to know what a tool does to the 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 purpose front-loaded and the access restriction appended. There is no filler, and every phrase contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 status-read tool with no output schema, the description usefully names the returned fields and states the admin-only restriction. The main gap is the unexplained request_id parameter, but otherwise the definition is fairly complete for its 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 never mentions the sole parameter, request_id. With one optional parameter left undocumented, the description does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Read') and resource ('Slack workspace name, connection state and connecting admin's user id'), so the purpose is clear. It does not explicitly differentiate itself from nearby sibling tools such as yardstick_integrations_workspace_health_read, but the Slack-specific scope is still evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only usage guidance is the access restriction 'Admins only.' There is no statement of when to choose this tool over alternatives like yardstick_integrations_workspace_health_read or yardstick_identity, nor any when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_source_links_createCreate a source or referral linkAInspect
Create an opaque source/referral link for a published job posting. Raw source_token is returned only in the create response; reads return token_hint, and active token-bearing links also return public_url.
| Name | Required | Description | Default |
|---|---|---|---|
| expires_at | No | ||
| request_id | No | ||
| description | No | ||
| source_label | Yes | ||
| referrer_name | No | ||
| job_posting_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint=false, idempotentHint=false), so the description carries the behavioral burden. It usefully discloses that the raw source_token is returned only in the create response, reads return token_hint, and active token-bearing links return public_url. This is meaningful, non-obvious behavior that helps an agent understand the side effects and response semantics.
Agents need to know what a tool does to the 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 and constraint are front-loaded, and the second sentence efficiently conveys the critical token exposure behavior. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, no parameter descriptions, no output schema, and sparse annotations, the description is not complete enough for an agent to reliably use the tool. It covers response token behavior but omits the purpose and semantics of optional parameters, idempotency handling, and how the create action relates to the broader link 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 0%, so the description needed to explain the seven parameters but does not. It only implies that job_posting_id must reference a published posting and that source_label relates to the source/referrer concept. Fields like expires_at, request_id, description, referrer_name, and idempotency_key remain 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 states a specific verb and resource: 'Create an opaque source/referral link for a published job posting.' It clearly distinguishes itself from the related source_links siblings (disable, list, read) by focusing on creation, and even adds a key scope constraint ('published job posting').
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: whenever you need to create a source/referral link for a published job posting. However, it does not explicitly contrast with alternatives like source_links_read, source_links_list, or source_links_disable, leaving routing between sibling tools to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_source_links_disableDisable a source or referral linkADestructiveInspect
Disable a source/referral link so its public URL no longer stamps attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| request_id | No | ||
| source_link_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and not read-only. The description adds concrete impact by stating that the public URL stops stamping attribution, giving the agent a clearer picture of the behavioral consequence beyond the annotation flags.
Agents need to know what a tool does to the 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 clause contributes meaning, making it 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?
The definition captures the core purpose and effect, which is enough for basic selection, but it omits usage context, parameter semantics, and any warning about irreversibility. For a destructive call with no output schema, these are noticeable 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 needed to explain the parameters, but it only references 'source/referral link' generally. source_link_id is inferable, but reason, request_id, and idempotency_key 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 ('Disable') and resource ('source/referral link') and explains the functional consequence ('public URL no longer stamps attribution'). This clearly distinguishes it from sibling create/list/read source-link tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives, nor about prerequisites such as obtaining an existing source_link_id. The agent is left to infer the use case from the name and title alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_source_links_listList source and referral linksBRead-onlyIdempotentInspect
List source/referral attribution links without raw token material or source quality ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| job_posting_id | No | ||
| starting_after | No | ||
| include_disabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is established. The description adds meaningful behavioral context by specifying that the response excludes raw token material and source quality ranking, which helps the agent set expectations about the returned data.
Agents need to know what a tool does to the 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, direct sentence that front-loads the primary action and adds a scoping qualifier without any filler or repetition. 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 has five optional parameters and no output schema, yet the description provides no parameter meanings, pagination behavior, or response format. Even for a read-only list, agents need more context to invoke it correctly with appropriate filters.
Complex tools with many parameters or behaviors need more documentation. 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 makes no mention of any of the five parameters (limit, request_id, job_posting_id, starting_after, include_disabled). With zero parameter documentation in both schema and description, the agent has no information about how to filter, paginate, or scope the list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('source/referral attribution links'), and the phrase 'without raw token material or source quality ranking' further defines the scope by noting what the response does not include. This clearly separates it from sibling create/read/disable tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like yardstick_source_links_read or yardstick_source_links_create. There are no conditions, prerequisites, or exclusions mentioned, leaving the agent to 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.
yardstick_source_links_readRead a source or referral linkARead-onlyIdempotentInspect
Read one source/referral attribution link by public id without raw token material.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| source_link_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds that the response does not include raw token material, a meaningful behavioral guarantee not present in annotations. Minor gap: does not state what it does return.
Agents need to know what a tool does to the 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 extra words. It efficiently conveys the action, resource, identifier type, and a key behavioral constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one required parameter and strong annotations, the description is nearly complete. The note about raw token material is important security context. An explicit mention of the return payload would make it fully complete, but it's not essential given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by clarifying that source_link_id is a public id and the resource is a source/referral attribution link. It does not mention the optional request_id, but the primary required parameter is well explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Read'), a specific resource ('source/referral attribution link'), and the scope ('by public id'). The word 'one' distinguishes it from list operations 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?
Usage is implied: use this when you need a single link by its public id. However, it does not explicitly mention when to prefer this over sibling tools like list, create, or disable, and offers no exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_talent_pool_members_addAdd a prospect to a talent poolAIdempotentInspect
Add an existing prospect to a Talent CRM pool.
| Name | Required | Description | Default |
|---|---|---|---|
| pool_id | Yes | ||
| request_id | No | ||
| prospect_id | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the mutation and idempotency profile is covered. The description adds that the prospect must already exist but does not disclose behaviors such as duplicate handling, failure modes, or what happens to associated data.
Agents need to know what a tool does to the 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 superfluous words. The action is front-loaded and the phrase 'existing prospect' adds meaningful context without bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 add operation, the description covers the core action, but with no output schema and two undocumented optional parameters, the agent is left unsure about the meaning of request_id and idempotency_key and about the expected result of the 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%, and the description does not explain the parameters. While pool_id and prospect_id are inferable from the wording, request_id and idempotency_key receive no explanation, leaving a material gap for a tool with four 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 uses a specific verb ('Add') and resource ('existing prospect to a Talent CRM pool'), clearly distinguishing the add operation from sibling tools like yardstick_talent_pool_members_list and yardstick_talent_pool_members_remove. It is immediately obvious what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the action and resource, and the word 'existing' narrows eligibility. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any preconditions or exclusions beyond the implicit 'existing prospect'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_talent_pool_members_listList talent pool membersBRead-onlyIdempotentInspect
List active prospect memberships for one Talent CRM pool.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| pool_id | Yes | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral context beyond annotations: it specifies 'active' memberships (implying filtering by status) and 'for one Talent CRM pool' (scoping to a single pool). These are useful details not present in the annotations, providing additional insight into the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, and the key action is front-loaded ('List active prospect memberships'). It is appropriately concise for a simple operation, though it could be slightly more informative without becoming verbose. The structure is clear 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 there is no output schema and the schema has 4 parameters with 0% description coverage, the description is incomplete. It fails to explain pagination parameters, the required pool_id, or what constitutes an 'active' membership. For a list operation, an agent would need to know how to handle limits and cursors, which are absent. The description covers only the basic action, 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 0%, and the description provides no information about any of the four parameters (limit, pool_id, request_id, starting_after). It does not mention that pool_id is required, nor does it explain pagination (limit/starting_after) or the purpose of request_id. With low coverage, the description must compensate but fails to do so, leaving parameters 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 clearly states the verb 'list', the resource 'prospect memberships', and the scope 'for one Talent CRM pool'. It distinguishes from siblings like talent_pool_members_add and talent_pool_members_remove, and from talent_pools_list (which lists pools, not members). 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 usage is implied by the description: you call this to list members of a specific pool. However, there is no explicit guidance on when to use this vs alternatives (e.g., when you need all members vs. active ones, or when to use a different listing tool). The description doesn't mention exclusions or alternative conditions, so it relies on the agent to 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.
yardstick_talent_pool_members_removeRemove a prospect from a talent poolCDestructiveIdempotentInspect
Remove an active prospect membership from a Talent CRM pool.
| Name | Required | Description | Default |
|---|---|---|---|
| pool_id | Yes | ||
| request_id | No | ||
| prospect_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, covering the core safety profile. The description adds only the qualifier 'active' but does not disclose consequences (e.g., permanence of removal, effect on prospect data) or permission requirements. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, brief sentence with no filler or redundant phrasing. It is front-loaded and wastes no words, though it is terse enough to lack important 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 that this is a destructive operation with zero parameter description coverage and no output schema, the description is too sparse. It does not explain which parameters are needed, what happens when a membership is removed, or any side effects, 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 0% and the description provides no explanation for pool_id, prospect_id, or request_id. It fails to compensate for the schema's lack of semantic detail, leaving the agent to infer parameter meaning solely from names and requiredness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Remove') and resource ('active prospect membership from a Talent CRM pool'), making the tool's purpose clear. It is distinct from sibling tools like yardstick_talent_pool_members_add and yardstick_talent_pool_members_list based on the verb, though it does not explicitly name or 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 this tool versus alternatives, prerequisites, or conditions for removal. The description only restates the action without explaining context, such as when a prospect should be removed or how this relates to add/list operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_talent_pools_createCreate a talent poolCInspect
Create a Talent CRM pool.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| request_id | No | ||
| description | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a non-read-only, non-idempotent, non-destructive write, and the description adds no behavioral detail beyond that. It does not explain effects of creating a pool, duplicates, permissions, or the role of idempotency_key and request_id, though it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and front-loaded, but it is under-specification rather than useful conciseness: it restates the title with no added information and no structured explanation of outcomes or 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?
For a create tool with four parameters and no output schema, the description leaves too much unsaid: no indication of what a successful response contains, how to handle retries, or what constraints apply beyond the schema. It is minimally acceptable as a stubbed description 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?
Schema description coverage is 0% and the free text does not compensate: none of name, description, request_id, or idempotency_key is explained. The agent has to infer even the required name field's meaning from tool context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb and a resource ('Create a Talent CRM pool'), so an agent can tell it is a creation tool for pools. However, it is nearly a restatement of the title and gives no sense of what a talent pool is, what it contains, or how this differs from related pool-member 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 talent_pools_list, talent_pools_read, talent_pools_update, or talent_pool_members_add. No prerequisites, duplicate-name behavior, or 'use X instead' conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_talent_pools_listList talent poolsARead-onlyIdempotentInspect
List Talent CRM pools visible to the current principal. Archived pools are excluded unless include_archived is true.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No | ||
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavior beyond annotations: visibility is scoped to the current principal and archived pools are excluded unless include_archived is true.
Agents need to know what a tool does to the 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 behavior is front-loaded, and the archived-pool exception is stated efficiently in the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with safety covered by annotations, the description conveys the key behavioral rules: principal-scoped visibility and archived exclusion. It does not describe pagination semantics or return shape, and there is no output schema, but the operation is simple enough that the main invocation behavior is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain include_archived's effect, but it does not clarify limit, starting_after, or request_id. The names hint at pagination and correlation, but the description provides no semantics for three of the four 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 ('Talent CRM pools'), and adds scoping information: pools visible to the current principal. It also makes the archived-pool behavior explicit, which distinguishes this listing tool from read/create/update 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 by noting that archived pools are excluded by default and can be included via include_archived. It does not explicitly name alternative tools or say when not to use it, but the listing behavior is unambiguous for a list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_talent_pools_readRead a talent poolARead-onlyIdempotentInspect
Read one Talent CRM pool by public id.
| Name | Required | Description | Default |
|---|---|---|---|
| pool_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the scoping constraint of 'one pool by public id' but no additional behavioral context such as return shape or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word adds meaning, and the core action is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally viable for a simple read tool with strong annotations, but it omits the semantics of the optional request_id and gives no hint about the output or related list/update tools. An agent could invoke the tool correctly, but with some avoidable uncertainty.
Complex tools with many parameters or behaviors need more documentation. 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 compensate, but it only clarifies pool_id as a 'public id'. It does not explain the optional request_id parameter or give any format/meaning beyond what the schema already shows with type and minLength.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Read'), the resource ('one Talent CRM pool'), and the lookup method ('by public id'). It distinguishes this singleton-read from sibling tools like talent_pools_list, create, and 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 phrase 'by public id' explicitly identifies the prerequisite for using the tool, and 'one' implies a single-resource read rather than a list operation. However, it does not explicitly name alternative tools or exclusion cases, 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.
yardstick_talent_pools_updateUpdate a talent poolCDestructiveIdempotentInspect
Update bounded Talent CRM pool fields.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| pool_id | Yes | ||
| archived | No | ||
| request_id | No | ||
| description | No | ||
| archived_reason | No | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=true, so the agent knows this is a mutating, destructive operation. The description adds only 'bounded', which is vague and not explained; it does not disclose side effects, permission requirements, reversibility, or the role of idempotency_key/archived_reason. This adds minimal behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it is under-specified. It does not front-load critical information such as which fields are updatable or the meaning of 'bounded'. The sentence takes up space without earning its place, as it offers little actionable detail beyond what the title already says.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, a destructive annotation, and no output schema, the description is severely incomplete. It does not explain how to use archived vs archived_reason, how idempotency_key should be used, what 'bounded' means, or any success/error behavior. An agent cannot confidently call this tool correctly based on the description alone, even with schema and 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 does not compensate by explaining any of the 7 parameters. The phrase 'bounded fields' gives no concrete information about name, archived, description, archived_reason, or idempotency_key. An agent is left to guess parameter semantics solely from names and JSON schema constraints, which is insufficient 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 states the verb 'Update' and resource 'Talent CRM pool', so an agent knows it modifies an existing pool. However, the modifier 'bounded' is ambiguous and the description does not specify which fields are updatable, making it less clear than simply stating 'update a talent pool'. It does distinguish from create/list/read siblings by the action verb, but adds little detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like create/read/list. The description does not mention exclusions, prerequisites, or when a different tool would be more appropriate. The only implication is that it is for updating existing pools, which an agent could infer from the name and title, but this is not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_talent_searchSearch TalentBRead-onlyIdempotentInspect
Search all authorized recruiting records by literal keywords across names, notes, activities and current parsed résumés. All words must match; PhD punctuation is normalized.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| job_id | No | ||
| offset | No | ||
| search | Yes | ||
| surface | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only, idempotent profile, so the bar is lower. The description nonetheless adds genuine behavioral facts beyond them: literal keyword matching, AND semantics ('All words must match'), and normalization of PhD punctuation.
Agents need to know what a tool does to the 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 the core scope front-loaded and matching semantics trailing. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, five undocumented parameters, and an unexplained enum, the description leaves important gaps: what each surface searches, how job_id scopes results, and how limit/offset paginate. An agent could call it, but would be guessing at several inputs.
Complex tools with many parameters or behaviors need more documentation. 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 carries the full burden for five parameters. It adds meaning only for `search` (literal, all-words-match, punctuation-normalized) while `surface`, `job_id`, `limit`, and `offset` remain entirely unexplained in both schema and 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?
Specific verb (Search) plus resource (recruiting records) and explicit searchable fields (names, notes, activities, parsed résumés), which is clearer than most search tools. It does not, however, differentiate itself from the sibling yardstick_reporting_search, which is another search entry 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 scopes the data ('all authorized recruiting records') but gives no when-to-use guidance, no exclusions, and no pointer to alternatives such as people_list or reporting_search. The three-way `surface` enum (candidates/prospects/review) is never explained as choosing between search domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_tasks_deep_linkGet a link that opens a task in YardstickBIdempotentInspect
Create a public task deep link for a caller-supplied task id.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey idempotentHint=true and destructiveHint=false, so the agent knows this is a safe, repeatable operation. The description adds the 'public' visibility detail, which is useful context, but it does not describe the return value or any other behavioral traits. No contradiction with annotations 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 that directly states the operation without unnecessary words. It is appropriately concise, though the title and description overlap somewhat in 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 two-parameter, link-generating tool, the description is nearly adequate, but it leaves request_id unexplained and does not state what the tool actually returns (e.g., a URL string). Since there is no output schema, a bit more detail about the response would make this 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 carries the full burden for parameter meaning. It mentions the task_id role ('caller-supplied task id') but does not explain request_id at all, nor does it describe expected formats, defaults, or optionality beyond the schema's minimal minLength 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 identifies the action ('Create a public task deep link') and the resource ('task id'), so an agent can tell this is about generating a task-specific URL rather than listing or reading tasks. It does not explicitly name a sibling alternative, but the verb and resource are specific enough to distinguish it from tasks_list and the other yardstick_tasks 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 like yardstick_tasks_list or yardstick_opportunities_deep_link. There are no prerequisites, exclusions, or contextual cues beyond the implied use case of having a task id and needing a deep link.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_tasks_listList tasksBRead-onlyIdempotentInspect
List Yardstick tasks visible to the current principal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| request_id | No | ||
| starting_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the operation is read-only, idempotent, and non-destructive, so the description does not need to restate those. The added 'visible to the current principal' scoping is useful, but pagination and response behavior are not 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 no filler or redundant restatement of the tool name. It communicates the core purpose 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 no-argument call, the description plus read-only annotations are probably sufficient. However, the lack of pagination or return-value guidance makes it incomplete for paged usage, which is a common need for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate by explaining limit, starting_after, or request_id. An agent cannot tell what starting_after should contain or what request_id is for 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 names the exact operation and resource: 'List Yardstick tasks visible to the current principal.' It is specific and distinct from the sibling set, notably from yardstick_tasks_deep_link, and the principal scoping adds useful 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?
There is no guidance about when to choose this tool over alternatives, nor any mention of prerequisites, filters, or typical use cases. The scope statement is helpful but does not help an agent decide between this and other list/detail tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yardstick_tasks_respondAnswer an assigned review taskBDestructiveInspect
Answer an assigned application or scorecard review. Recruiter questions require a note; send_to_recruiter shares a scorecard note with the recruiter.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| task_id | Yes | ||
| decision | Yes | ||
| request_id | No | ||
| idempotency_key | No | ||
| send_to_recruiter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is covered. The description adds real context beyond that: a conditional requirement (a note is mandatory for recruiter questions) and an external side effect (send_to_recruiter shares a scorecard note with the recruiter). It still does not say what the destructive action finalizes or whether it is reversible, so it is a moderate rather than rich 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?
Two tight sentences with no waste; the core action leads and the conditional/side-effect rules follow. Compact and front-loaded, though the second sentence packs two distinct rules into one clause chain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, non-idempotent mutation with six parameters at 0% schema coverage and no output schema, the description leaves too much unspecified: the meaning of the decision enum, what a successful response looks like, and how request_id/idempotency_key should be used. It is not sufficient for an agent to invoke this 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% across six parameters, so the description carries the full burden. It explains only two of them ('note' conditionally, 'send_to_recruiter') and never maps any of the six enum values for 'decision' (approve/reject/hold/ask_recruiter/thumbs_up/thumbs_down) or clarifies task_id, request_id, or idempotency_key.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Answer an assigned application or scorecard review'), which is clearly distinct from the read-only siblings yardstick_tasks_list and yardstick_tasks_deep_link. It does not name those siblings explicitly, but the action/read distinction is obvious from the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'assigned ... review task' and one conditional rule is given ('Recruiter questions require a note'), but there is no guidance on when this tool is the right choice versus alternatives, and no prerequisites or exclusions are stated.
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.
8 tool updates
- Added
yardstick_slack_connect_link - Added
yardstick_slack_disconnect - Added
yardstick_slack_me - Added
yardstick_slack_me_test - Added
yardstick_slack_member_set - Added
yardstick_slack_member_unset - Added
yardstick_slack_members_list - Added
yardstick_slack_members_match
9 tool updates
- Added
yardstick_interview_sessions_feedback_read - Added
yardstick_interview_sessions_question_notes_save - Added
yardstick_interview_sessions_scorecard_remove_rating - Added
yardstick_notifications_get - Added
yardstick_notifications_org_defaults_get - Added
yardstick_notifications_org_defaults_set - Added
yardstick_notifications_reset - Added
yardstick_notifications_set - Added
yardstick_slack_status
3 tool updates
- Changed
yardstick_automation_rules_create1 field changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "delivery": { - "default": "auto_draft_review", - "enum": [ - "auto_send", - "auto_draft_review" - ], - "type": "string" - }, - "task": { - "additionalProperties": false, - "properties": { - "assignee": { - "anyOf": [ - { - "const": "recruiter", - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "user_id": { - "format": "uuid", - "type": "string" - } - }, - "required": [ - "user_id" - ], - "type": "object" - } - ] - }, - "due_in": { - "additionalProperties": false, - "properties": { - "unit": { - "enum": [ - "days", - "hours" - ], - "type": "string" - }, - "value": { - "maximum": 8760, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "value", - "unit" - ], - "type": "object" - }, - "title": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "assignee", - "title" - ], - "type": "object" - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "update_scheduling", - "type": "string" - } - }, - "required": [ - "type", - "task" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "assigned_role": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "description": "Existing fixed deadline; use due_in for recurring rules.", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "due_in": { - "additionalProperties": false, - "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", - "properties": { - "unit": { - "enum": [ - "days", - "hours" - ], - "type": "string" - }, - "value": { - "maximum": 8760, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "value", - "unit" - ], - "type": "object" - }, - "task_title": { - "description": "Task title; {candidate} resolves to the candidate name.", - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "anyOf": [ - { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - { - "const": "interview_cancellation", - "type": "string" - } - ] - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "format": { - "enum": [ - "combined", - "separate" - ], - "type": "string" - }, - "interview_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_invitation", - "type": "string" - } - }, - "required": [ - "type", - "interview_ids", - "format" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "template_key": { - "enum": [ - "candidate_preparation", - "onsite_logistics", - "technical_preparation" - ], - "type": "string" - }, - "type": { - "const": "send_preparation_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "audience": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner", - "offer_approver", - "offer_requester" - ], - "type": "string" - }, - "template": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_internal_email", - "type": "string" - } - }, - "required": [ - "type", - "audience", - "template" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "verify_calendar_event", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "delivery": { + "default": "auto_draft_review", + "enum": [ + "auto_send", + "auto_draft_review" + ], + "type": "string" + }, + "task": { + "additionalProperties": false, + "properties": { + "assignee": { + "anyOf": [ + { + "const": "recruiter", + "type": "string" + }, + { + "additionalProperties": false, + "properties": { + "user_id": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "user_id" + ], + "type": "object" + } + ] + }, + "due_in": { + "additionalProperties": false, + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "title": { + "maxLength": 500, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "assignee", + "title" + ], + "type": "object" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "update_scheduling", + "type": "string" + } + }, + "required": [ + "type", + "task" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "description": "Existing fixed deadline; use due_in for recurring rules.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "due_in": { + "additionalProperties": false, + "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "task_title": { + "description": "Task title; {candidate} resolves to the candidate name.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "anyOf": [ + { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + { + "const": "interview_cancellation", + "type": "string" + } + ] + }, + "sender_type": { + "description": "Who the email comes from: owner (the job recruiter) or job_hiring_manager. Omit to use the company's sender setting.", + "enum": [ + "owner", + "job_hiring_manager" + ], + "type": "string" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "template_key": { + "enum": [ + "candidate_preparation", + "onsite_logistics", + "technical_preparation" + ], + "type": "string" + }, + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner", + "offer_approver", + "offer_requester" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +]
- Added
yardstick_automation_rules_preview_draft - Changed
yardstick_automation_rules_update1 field changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "delivery": { - "default": "auto_draft_review", - "enum": [ - "auto_send", - "auto_draft_review" - ], - "type": "string" - }, - "task": { - "additionalProperties": false, - "properties": { - "assignee": { - "anyOf": [ - { - "const": "recruiter", - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "user_id": { - "format": "uuid", - "type": "string" - } - }, - "required": [ - "user_id" - ], - "type": "object" - } - ] - }, - "due_in": { - "additionalProperties": false, - "properties": { - "unit": { - "enum": [ - "days", - "hours" - ], - "type": "string" - }, - "value": { - "maximum": 8760, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "value", - "unit" - ], - "type": "object" - }, - "title": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "assignee", - "title" - ], - "type": "object" - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "update_scheduling", - "type": "string" - } - }, - "required": [ - "type", - "task" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "assigned_role": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "description": "Existing fixed deadline; use due_in for recurring rules.", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "due_in": { - "additionalProperties": false, - "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", - "properties": { - "unit": { - "enum": [ - "days", - "hours" - ], - "type": "string" - }, - "value": { - "maximum": 8760, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "value", - "unit" - ], - "type": "object" - }, - "task_title": { - "description": "Task title; {candidate} resolves to the candidate name.", - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "anyOf": [ - { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - { - "const": "interview_cancellation", - "type": "string" - } - ] - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "format": { - "enum": [ - "combined", - "separate" - ], - "type": "string" - }, - "interview_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_invitation", - "type": "string" - } - }, - "required": [ - "type", - "interview_ids", - "format" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "template_key": { - "enum": [ - "candidate_preparation", - "onsite_logistics", - "technical_preparation" - ], - "type": "string" - }, - "type": { - "const": "send_preparation_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "audience": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner", - "offer_approver", - "offer_requester" - ], - "type": "string" - }, - "template": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_internal_email", - "type": "string" - } - }, - "required": [ - "type", - "audience", - "template" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "verify_calendar_event", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "delivery": { + "default": "auto_draft_review", + "enum": [ + "auto_send", + "auto_draft_review" + ], + "type": "string" + }, + "task": { + "additionalProperties": false, + "properties": { + "assignee": { + "anyOf": [ + { + "const": "recruiter", + "type": "string" + }, + { + "additionalProperties": false, + "properties": { + "user_id": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "user_id" + ], + "type": "object" + } + ] + }, + "due_in": { + "additionalProperties": false, + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "title": { + "maxLength": 500, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "assignee", + "title" + ], + "type": "object" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "update_scheduling", + "type": "string" + } + }, + "required": [ + "type", + "task" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "description": "Existing fixed deadline; use due_in for recurring rules.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "due_in": { + "additionalProperties": false, + "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "task_title": { + "description": "Task title; {candidate} resolves to the candidate name.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "anyOf": [ + { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + { + "const": "interview_cancellation", + "type": "string" + } + ] + }, + "sender_type": { + "description": "Who the email comes from: owner (the job recruiter) or job_hiring_manager. Omit to use the company's sender setting.", + "enum": [ + "owner", + "job_hiring_manager" + ], + "type": "string" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "template_key": { + "enum": [ + "candidate_preparation", + "onsite_logistics", + "technical_preparation" + ], + "type": "string" + }, + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner", + "offer_approver", + "offer_requester" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +]
22 tool updates
- Added
yardstick_offers_answers_update - Changed
yardstick_offers_create2 fields changed- added
Input schema / properties / packet_idAdded value: +{ + "format": "uuid", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "idempotency_key", - "application_id", - "template_version_id" -]New value: +[ + "idempotency_key", + "application_id" +]
- Added
yardstick_offers_documents_add - Added
yardstick_offers_documents_change_packet - Added
yardstick_offers_documents_edit - Added
yardstick_offers_documents_list - Added
yardstick_offers_documents_remove - Added
yardstick_offers_documents_reorder - Added
yardstick_offers_library_documents_archive - Added
yardstick_offers_library_documents_copy - Added
yardstick_offers_library_documents_create - Added
yardstick_offers_library_documents_list - Added
yardstick_offers_library_documents_publish - Added
yardstick_offers_library_documents_read - Added
yardstick_offers_library_documents_update_draft - Added
yardstick_offers_library_packets_archive - Added
yardstick_offers_library_packets_create - Added
yardstick_offers_library_packets_list - Added
yardstick_offers_library_packets_reorder - Added
yardstick_offers_library_packets_update - Added
yardstick_offers_signed_files_download - Added
yardstick_offers_signed_files_list
25 tool updates
- Added
yardstick_offers_approval_bind - Added
yardstick_offers_approval_preview - Added
yardstick_offers_approval_review - Added
yardstick_offers_cancel_revision - Added
yardstick_offers_countersignature_read - Added
yardstick_offers_countersignature_update - Added
yardstick_offers_create - Added
yardstick_offers_lifecycle_policy_read - Added
yardstick_offers_lifecycle_policy_update - Added
yardstick_offers_list - Added
yardstick_offers_open_revision - Added
yardstick_offers_read - Added
yardstick_offers_rescind_bind - Added
yardstick_offers_rescind_preview - Added
yardstick_offers_send_bind - Added
yardstick_offers_send_preview - Added
yardstick_offers_send_status - Added
yardstick_offers_signed_copy - Added
yardstick_offers_status - Added
yardstick_offers_submit_for_approval - Added
yardstick_offers_timeline - Added
yardstick_offers_update - Added
yardstick_offers_verification_policy_read - Added
yardstick_offers_verification_policy_update - Changed
yardstick_reporting_search1 field changed- changed
Input schema / properties / query_family / enumPrevious value: -[ - "role_health_attention", - "funnel_snapshot_by_role", - "stale_opportunity_queue", - "missing_feedback_queue", - "candidate_pool_strength", - "source_signals", - "prospect_ops_summary" -]New value: +[ + "role_health_attention", + "funnel_snapshot_by_role", + "stale_opportunity_queue", + "missing_feedback_queue", + "candidate_pool_strength", + "source_signals", + "prospect_ops_summary", + "offer_performance" +]
8 tool updates
- Added
yardstick_applications_decide_hiring_step - Added
yardstick_applications_hiring_step_decision - Changed
yardstick_applications_list1 field changed- added
Input schema / properties / hiring_manager_decisionAdded value: +{ + "enum": [ + "advanced", + "held", + "waiting" + ], + "type": "string" +}
- Changed
yardstick_automation_rules_create1 field changed- changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "all_scorecards_submitted", - "interview_time", - "assignment_changed", - "booking_cancelled", - "scorecard_due", - "scorecard_overdue", - "decision_brief_ready", - "coaching_report_ready", - "offer_approval_due", - "offer_approval_escalation_due" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "hiring_manager_advanced", + "hiring_manager_held", + "interview_time", + "assignment_changed", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +]
- Changed
yardstick_automation_rules_preview1 field changed- changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "all_scorecards_submitted", - "interview_time", - "assignment_changed", - "booking_cancelled", - "scorecard_due", - "scorecard_overdue", - "decision_brief_ready", - "coaching_report_ready", - "offer_approval_due", - "offer_approval_escalation_due" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "hiring_manager_advanced", + "hiring_manager_held", + "interview_time", + "assignment_changed", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +]
- Changed
yardstick_automation_rules_update1 field changed- changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "all_scorecards_submitted", - "interview_time", - "assignment_changed", - "booking_cancelled", - "scorecard_due", - "scorecard_overdue", - "decision_brief_ready", - "coaching_report_ready", - "offer_approval_due", - "offer_approval_escalation_due" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "hiring_manager_advanced", + "hiring_manager_held", + "interview_time", + "assignment_changed", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +]
- Added
yardstick_interview_plans_set_hiring_manager_decides - Changed
yardstick_tasks_respond2 fields changed- changed
Input schema / properties / decision / enumPrevious value: -[ - "approve", - "reject", - "hold", - "ask_recruiter", - "thumbs_up", - "thumbs_down", - "note_to_recruiter" -]New value: +[ + "approve", + "reject", + "hold", + "ask_recruiter", + "thumbs_up", + "thumbs_down" +] - added
Input schema / properties / send_to_recruiterAdded value: +{ + "type": "boolean" +}
1 tool update
- Changed
yardstick_interview_sessions_scorecard_submit1 field changed- removed
Input schema / properties / overall_ratingRemoved value: -{ - "maximum": 5, - "minimum": 1, - "type": "integer" -}
3 tool updates
- Changed
yardstick_automation_rules_create2 fields changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "assigned_role": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "description": "Existing fixed deadline; use due_in for recurring rules.", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "due_in": { - "additionalProperties": false, - "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", - "properties": { - "unit": { - "enum": [ - "days", - "hours" - ], - "type": "string" - }, - "value": { - "maximum": 8760, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "value", - "unit" - ], - "type": "object" - }, - "task_title": { - "description": "Task title; {candidate} resolves to the candidate name.", - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "anyOf": [ - { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - { - "const": "interview_cancellation", - "type": "string" - } - ] - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "format": { - "enum": [ - "combined", - "separate" - ], - "type": "string" - }, - "interview_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_invitation", - "type": "string" - } - }, - "required": [ - "type", - "interview_ids", - "format" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "template_key": { - "enum": [ - "candidate_preparation", - "onsite_logistics", - "technical_preparation" - ], - "type": "string" - }, - "type": { - "const": "send_preparation_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "audience": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner", - "offer_approver", - "offer_requester" - ], - "type": "string" - }, - "template": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_internal_email", - "type": "string" - } - }, - "required": [ - "type", - "audience", - "template" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "verify_calendar_event", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "delivery": { + "default": "auto_draft_review", + "enum": [ + "auto_send", + "auto_draft_review" + ], + "type": "string" + }, + "task": { + "additionalProperties": false, + "properties": { + "assignee": { + "anyOf": [ + { + "const": "recruiter", + "type": "string" + }, + { + "additionalProperties": false, + "properties": { + "user_id": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "user_id" + ], + "type": "object" + } + ] + }, + "due_in": { + "additionalProperties": false, + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "title": { + "maxLength": 500, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "assignee", + "title" + ], + "type": "object" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "update_scheduling", + "type": "string" + } + }, + "required": [ + "type", + "task" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "description": "Existing fixed deadline; use due_in for recurring rules.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "due_in": { + "additionalProperties": false, + "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "task_title": { + "description": "Task title; {candidate} resolves to the candidate name.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "anyOf": [ + { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + { + "const": "interview_cancellation", + "type": "string" + } + ] + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "template_key": { + "enum": [ + "candidate_preparation", + "onsite_logistics", + "technical_preparation" + ], + "type": "string" + }, + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner", + "offer_approver", + "offer_requester" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +] - changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "all_scorecards_submitted", - "interview_time", - "booking_cancelled", - "scorecard_due", - "scorecard_overdue", - "decision_brief_ready", - "coaching_report_ready", - "offer_approval_due", - "offer_approval_escalation_due" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "interview_time", + "assignment_changed", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +]
- Changed
yardstick_automation_rules_preview1 field changed- changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "all_scorecards_submitted", - "interview_time", - "booking_cancelled", - "scorecard_due", - "scorecard_overdue", - "decision_brief_ready", - "coaching_report_ready", - "offer_approval_due", - "offer_approval_escalation_due" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "interview_time", + "assignment_changed", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +]
- Changed
yardstick_automation_rules_update2 fields changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "assigned_role": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "description": "Existing fixed deadline; use due_in for recurring rules.", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "due_in": { - "additionalProperties": false, - "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", - "properties": { - "unit": { - "enum": [ - "days", - "hours" - ], - "type": "string" - }, - "value": { - "maximum": 8760, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "value", - "unit" - ], - "type": "object" - }, - "task_title": { - "description": "Task title; {candidate} resolves to the candidate name.", - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "anyOf": [ - { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - { - "const": "interview_cancellation", - "type": "string" - } - ] - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "format": { - "enum": [ - "combined", - "separate" - ], - "type": "string" - }, - "interview_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_invitation", - "type": "string" - } - }, - "required": [ - "type", - "interview_ids", - "format" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "template_key": { - "enum": [ - "candidate_preparation", - "onsite_logistics", - "technical_preparation" - ], - "type": "string" - }, - "type": { - "const": "send_preparation_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "audience": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner", - "offer_approver", - "offer_requester" - ], - "type": "string" - }, - "template": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_internal_email", - "type": "string" - } - }, - "required": [ - "type", - "audience", - "template" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "verify_calendar_event", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "delivery": { + "default": "auto_draft_review", + "enum": [ + "auto_send", + "auto_draft_review" + ], + "type": "string" + }, + "task": { + "additionalProperties": false, + "properties": { + "assignee": { + "anyOf": [ + { + "const": "recruiter", + "type": "string" + }, + { + "additionalProperties": false, + "properties": { + "user_id": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "user_id" + ], + "type": "object" + } + ] + }, + "due_in": { + "additionalProperties": false, + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "title": { + "maxLength": 500, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "assignee", + "title" + ], + "type": "object" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "update_scheduling", + "type": "string" + } + }, + "required": [ + "type", + "task" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "description": "Existing fixed deadline; use due_in for recurring rules.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "due_in": { + "additionalProperties": false, + "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "task_title": { + "description": "Task title; {candidate} resolves to the candidate name.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "anyOf": [ + { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + { + "const": "interview_cancellation", + "type": "string" + } + ] + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "template_key": { + "enum": [ + "candidate_preparation", + "onsite_logistics", + "technical_preparation" + ], + "type": "string" + }, + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner", + "offer_approver", + "offer_requester" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +] - changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "all_scorecards_submitted", - "interview_time", - "booking_cancelled", - "scorecard_due", - "scorecard_overdue", - "decision_brief_ready", - "coaching_report_ready", - "offer_approval_due", - "offer_approval_escalation_due" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "interview_time", + "assignment_changed", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +]
2 tool updates
- Changed
yardstick_automation_rules_create1 field changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "interview_id": { - "minLength": 1, - "type": "string" - }, - "interview_session_id": { - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_link", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "assigned_role": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "description": "Existing fixed deadline; use due_in for recurring rules.", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "due_in": { - "additionalProperties": false, - "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", - "properties": { - "unit": { - "enum": [ - "days", - "hours" - ], - "type": "string" - }, - "value": { - "maximum": 8760, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "value", - "unit" - ], - "type": "object" - }, - "task_title": { - "description": "Task title; {candidate} resolves to the candidate name.", - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "anyOf": [ - { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - { - "const": "interview_cancellation", - "type": "string" - } - ] - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "format": { - "enum": [ - "combined", - "separate" - ], - "type": "string" - }, - "interview_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "type": { - "const": "send_scheduling_invitation", - "type": "string" - } - }, - "required": [ - "type", - "interview_ids", - "format" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "template_key": { - "enum": [ - "candidate_preparation", - "onsite_logistics", - "technical_preparation" - ], - "type": "string" - }, - "type": { - "const": "send_preparation_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "audience": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner", - "offer_approver", - "offer_requester" - ], - "type": "string" - }, - "template": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_internal_email", - "type": "string" - } - }, - "required": [ - "type", - "audience", - "template" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "verify_calendar_event", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "description": "Existing fixed deadline; use due_in for recurring rules.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "due_in": { + "additionalProperties": false, + "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "task_title": { + "description": "Task title; {candidate} resolves to the candidate name.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "anyOf": [ + { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + { + "const": "interview_cancellation", + "type": "string" + } + ] + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "template_key": { + "enum": [ + "candidate_preparation", + "onsite_logistics", + "technical_preparation" + ], + "type": "string" + }, + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner", + "offer_approver", + "offer_requester" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +]
- Changed
yardstick_automation_rules_update1 field changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "interview_id": { - "minLength": 1, - "type": "string" - }, - "interview_session_id": { - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_link", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "assigned_role": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "description": "Existing fixed deadline; use due_in for recurring rules.", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "due_in": { - "additionalProperties": false, - "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", - "properties": { - "unit": { - "enum": [ - "days", - "hours" - ], - "type": "string" - }, - "value": { - "maximum": 8760, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "value", - "unit" - ], - "type": "object" - }, - "task_title": { - "description": "Task title; {candidate} resolves to the candidate name.", - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "anyOf": [ - { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - { - "const": "interview_cancellation", - "type": "string" - } - ] - }, - "template_key": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "format": { - "enum": [ - "combined", - "separate" - ], - "type": "string" - }, - "interview_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "type": { - "const": "send_scheduling_invitation", - "type": "string" - } - }, - "required": [ - "type", - "interview_ids", - "format" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "template_key": { - "enum": [ - "candidate_preparation", - "onsite_logistics", - "technical_preparation" - ], - "type": "string" - }, - "type": { - "const": "send_preparation_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "audience": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner", - "offer_approver", - "offer_requester" - ], - "type": "string" - }, - "template": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_internal_email", - "type": "string" - } - }, - "required": [ - "type", - "audience", - "template" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "verify_calendar_event", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "description": "Existing fixed deadline; use due_in for recurring rules.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "due_in": { + "additionalProperties": false, + "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "task_title": { + "description": "Task title; {candidate} resolves to the candidate name.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "anyOf": [ + { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + { + "const": "interview_cancellation", + "type": "string" + } + ] + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "template_key": { + "enum": [ + "candidate_preparation", + "onsite_logistics", + "technical_preparation" + ], + "type": "string" + }, + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner", + "offer_approver", + "offer_requester" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +]
29 tool updates
- Added
yardstick_applications_decide - Changed
yardstick_applications_list1 field changed- added
Input schema / properties / job_idAdded value: +{ + "minLength": 1, + "type": "string" +}
- Added
yardstick_automation_rules_bulk - Added
yardstick_automation_rules_copy - Changed
yardstick_automation_rules_create7 fields changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "interview_id": { - "minLength": 1, - "type": "string" - }, - "interview_session_id": { - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_link", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "assigned_role": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "task_title": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type", - "email_type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "format": { - "enum": [ - "combined", - "separate" - ], - "type": "string" - }, - "interview_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "type": { - "const": "send_scheduling_invitation", - "type": "string" - } - }, - "required": [ - "type", - "interview_ids", - "format" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "send_preparation_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "audience": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "template": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_internal_email", - "type": "string" - } - }, - "required": [ - "type", - "audience", - "template" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "verify_calendar_event", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "interview_id": { + "minLength": 1, + "type": "string" + }, + "interview_session_id": { + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_link", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "description": "Existing fixed deadline; use due_in for recurring rules.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "due_in": { + "additionalProperties": false, + "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "task_title": { + "description": "Task title; {candidate} resolves to the candidate name.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "anyOf": [ + { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + { + "const": "interview_cancellation", + "type": "string" + } + ] + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "template_key": { + "enum": [ + "candidate_preparation", + "onsite_logistics", + "technical_preparation" + ], + "type": "string" + }, + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner", + "offer_approver", + "offer_requester" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +] - added
Input schema / properties / condition / properties / step_positionAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "which": { + "const": "next", + "type": "string" + } + }, + "required": [ + "which" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "which": { + "const": "first", + "type": "string" + } + }, + "required": [ + "which", + "kind" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "which": { + "const": "last", + "type": "string" + } + }, + "required": [ + "which", + "kind" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "anchor_kind": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "kind": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "which": { + "const": "last_before", + "type": "string" + } + }, + "required": [ + "which", + "kind", + "anchor_kind" + ], + "type": "object" + } + ] +} - added
Input schema / properties / job_idAdded value: +{ + "anyOf": [ + { + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Input schema / properties / needs_step_pickAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / pipeline_template_idAdded value: +{ + "anyOf": [ + { + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "interview_time" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "interview_time", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +] - changed
Input schema / requiredPrevious value: -[ - "pipeline_stage_id", - "trigger", - "action" -]New value: +[ + "trigger", + "action" +]
- Changed
yardstick_automation_rules_list6 fields changed- added
Input schema / properties / department_idAdded value: +{ + "minLength": 1, + "type": "string" +} - added
Input schema / properties / emailAdded value: +{ + "minLength": 1, + "type": "string" +} - added
Input schema / properties / is_activeAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / job_idAdded value: +{ + "minLength": 1, + "type": "string" +} - added
Input schema / properties / pipeline_idAdded value: +{ + "minLength": 1, + "type": "string" +} - added
Input schema / properties / triggerAdded value: +{ + "minLength": 1, + "type": "string" +}
- Changed
yardstick_automation_rules_preview1 field changed- changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "interview_time" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "interview_time", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +]
- Changed
yardstick_automation_rules_update6 fields changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "interview_id": { - "minLength": 1, - "type": "string" - }, - "interview_session_id": { - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_link", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "assigned_role": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "task_title": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type", - "email_type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "format": { - "enum": [ - "combined", - "separate" - ], - "type": "string" - }, - "interview_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "type": { - "const": "send_scheduling_invitation", - "type": "string" - } - }, - "required": [ - "type", - "interview_ids", - "format" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "send_preparation_email", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "audience": { - "enum": [ - "assigned_interviewer", - "recruiter", - "hiring_manager", - "team_owner" - ], - "type": "string" - }, - "template": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_internal_email", - "type": "string" - } - }, - "required": [ - "type", - "audience", - "template" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "const": "verify_calendar_event", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "interview_id": { + "minLength": 1, + "type": "string" + }, + "interview_session_id": { + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_link", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "description": "Existing fixed deadline; use due_in for recurring rules.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "due_in": { + "additionalProperties": false, + "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.", + "properties": { + "unit": { + "enum": [ + "days", + "hours" + ], + "type": "string" + }, + "value": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "value", + "unit" + ], + "type": "object" + }, + "task_title": { + "description": "Task title; {candidate} resolves to the candidate name.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "anyOf": [ + { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + { + "const": "interview_cancellation", + "type": "string" + } + ] + }, + "template_key": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "template_key": { + "enum": [ + "candidate_preparation", + "onsite_logistics", + "technical_preparation" + ], + "type": "string" + }, + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner", + "offer_approver", + "offer_requester" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +] - added
Input schema / properties / condition / properties / step_positionAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "which": { + "const": "next", + "type": "string" + } + }, + "required": [ + "which" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "which": { + "const": "first", + "type": "string" + } + }, + "required": [ + "which", + "kind" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "which": { + "const": "last", + "type": "string" + } + }, + "required": [ + "which", + "kind" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "anchor_kind": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "kind": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "which": { + "const": "last_before", + "type": "string" + } + }, + "required": [ + "which", + "kind", + "anchor_kind" + ], + "type": "object" + } + ] +} - added
Input schema / properties / job_idAdded value: +{ + "anyOf": [ + { + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Input schema / properties / needs_step_pickAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / pipeline_template_idAdded value: +{ + "anyOf": [ + { + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit", - "step_ready", - "booking_created", - "booking_changed", - "step_completed", - "feedback_submitted", - "interview_time" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "all_scorecards_submitted", + "interview_time", + "booking_cancelled", + "scorecard_due", + "scorecard_overdue", + "decision_brief_ready", + "coaching_report_ready", + "offer_approval_due", + "offer_approval_escalation_due" +]
- Added
yardstick_automation_starters_apply - Added
yardstick_automation_starters_create - Added
yardstick_automation_starters_delete - Added
yardstick_automation_starters_list - Added
yardstick_automation_starters_preview - Added
yardstick_automation_starters_rename - Added
yardstick_automation_starters_save_job - Changed
yardstick_email_template_versions_list2 fields changed- removed
Input schema / properties / email_type / enumRemoved value: -[ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold", - "candidate_follow_up" -] - added
Input schema / properties / email_type / patternAdded value: +"^[a-z][a-z0-9_]{0,99}$"
- Added
yardstick_email_templates_create - Added
yardstick_email_templates_delete - Added
yardstick_email_templates_duplicate - Changed
yardstick_email_templates_preview2 fields changed- removed
Input schema / properties / email_type / enumRemoved value: -[ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold", - "candidate_follow_up" -] - added
Input schema / properties / email_type / patternAdded value: +"^[a-z][a-z0-9_]{0,99}$"
- Changed
yardstick_email_templates_preview_customization2 fields changed- removed
Input schema / properties / email_type / enumRemoved value: -[ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold", - "candidate_follow_up" -] - added
Input schema / properties / email_type / patternAdded value: +"^[a-z][a-z0-9_]{0,99}$"
- Changed
yardstick_email_templates_publish2 fields changed- removed
Input schema / properties / email_type / enumRemoved value: -[ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold", - "candidate_follow_up" -] - added
Input schema / properties / email_type / patternAdded value: +"^[a-z][a-z0-9_]{0,99}$"
- Changed
yardstick_email_templates_read2 fields changed- removed
Input schema / properties / email_type / enumRemoved value: -[ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold", - "candidate_follow_up" -] - added
Input schema / properties / email_type / patternAdded value: +"^[a-z][a-z0-9_]{0,99}$"
- Added
yardstick_email_templates_reset - Changed
yardstick_email_templates_rollback2 fields changed- removed
Input schema / properties / email_type / enumRemoved value: -[ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold", - "candidate_follow_up" -] - added
Input schema / properties / email_type / patternAdded value: +"^[a-z][a-z0-9_]{0,99}$"
- Changed
yardstick_email_templates_validate2 fields changed- removed
Input schema / properties / email_type / enumRemoved value: -[ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold", - "candidate_follow_up" -] - added
Input schema / properties / email_type / patternAdded value: +"^[a-z][a-z0-9_]{0,99}$"
- Changed
yardstick_pipelines_assign_to_job1 field changed- added
Input schema / properties / stage_mappingAdded value: +{ + "additionalProperties": { + "minLength": 1, + "type": "string" + }, + "propertyNames": { + "minLength": 1 + }, + "type": "object" +}
- Added
yardstick_pipelines_assign_to_job_preview - Added
yardstick_tasks_respond
1 tool update
- Added
yardstick_automation_runs_retry
7 tool updates
- Added
yardstick_applications_admit_candidate - Added
yardstick_applications_undo_candidate_admission - Changed
yardstick_automation_rules_create13 fields changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "interview_id": { - "minLength": 1, - "type": "string" - }, - "interview_session_id": { - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_link", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "task_title": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title", - "assigned_user_email" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type", - "email_type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "interview_id": { + "minLength": 1, + "type": "string" + }, + "interview_session_id": { + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_link", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "task_title": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type", + "email_type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +] - changed
Input schema / properties / condition / additionalPropertiesPrevious value: -{}New value: +true - added
Input schema / properties / condition / propertiesAdded value: +{ + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "step_kinds": { + "items": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + } +} - added
Input schema / properties / delivery_modeAdded value: +{ + "enum": [ + "auto_send", + "auto_draft_review" + ], + "type": "string" +} - added
Input schema / properties / job_posting_idsAdded value: +{ + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / job_scopeAdded value: +{ + "enum": [ + "all_compatible", + "selected" + ], + "type": "string" +} - added
Input schema / properties / nameAdded value: +{ + "maxLength": 200, + "type": "string" +} - added
Input schema / properties / pipeline_stage_id / anyOfAdded value: +[ + { + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / pipeline_stage_id / minLengthRemoved value: -1 - removed
Input schema / properties / pipeline_stage_id / typeRemoved value: -"string" - added
Input schema / properties / starter_keyAdded value: +{ + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Input schema / properties / timingAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "type": { + "const": "immediate", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "delayMinutes": { + "minimum": 0, + "type": "integer" + }, + "type": { + "const": "delay", + "type": "string" + } + }, + "required": [ + "type", + "delayMinutes" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "anchor": { + "enum": [ + "start", + "end" + ], + "type": "string" + }, + "offsetMinutes": { + "type": "integer" + }, + "type": { + "const": "interview_relative", + "type": "string" + } + }, + "required": [ + "type", + "anchor", + "offsetMinutes" + ], + "type": "object" + } + ] +} - changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "interview_time" +]
- Changed
yardstick_automation_rules_preview1 field changed- changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "interview_time" +]
- Added
yardstick_automation_rules_preview_rule - Changed
yardstick_automation_rules_update11 fields changed- changed
Input schema / properties / action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "interview_id": { - "minLength": 1, - "type": "string" - }, - "interview_session_id": { - "minLength": 1, - "type": "string" - }, - "type": { - "const": "send_scheduling_link", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "assigned_user_email": { - "maxLength": 320, - "minLength": 1, - "type": "string" - }, - "context": { - "additionalProperties": {}, - "type": "object" - }, - "due_date": { - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "task_title": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "task_type": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "type": { - "const": "create_task", - "type": "string" - } - }, - "required": [ - "type", - "task_type", - "task_title", - "assigned_user_email" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "email_type": { - "enum": [ - "acknowledgment", - "advancement", - "interview_confirmation", - "rejection", - "offer_declined", - "offer", - "hired", - "withdrawn", - "on_hold" - ], - "type": "string" - }, - "type": { - "const": "send_email", - "type": "string" - } - }, - "required": [ - "type", - "email_type" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "interview_id": { + "minLength": 1, + "type": "string" + }, + "interview_session_id": { + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_scheduling_link", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assigned_role": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "assigned_user_email": { + "maxLength": 320, + "minLength": 1, + "type": "string" + }, + "context": { + "additionalProperties": {}, + "type": "object" + }, + "due_date": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "task_title": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "task_type": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "create_task", + "type": "string" + } + }, + "required": [ + "type", + "task_type", + "task_title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "email_type": { + "enum": [ + "acknowledgment", + "advancement", + "interview_confirmation", + "rejection", + "offer_declined", + "offer", + "hired", + "withdrawn", + "on_hold" + ], + "type": "string" + }, + "type": { + "const": "send_email", + "type": "string" + } + }, + "required": [ + "type", + "email_type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "format": { + "enum": [ + "combined", + "separate" + ], + "type": "string" + }, + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "type": { + "const": "send_scheduling_invitation", + "type": "string" + } + }, + "required": [ + "type", + "interview_ids", + "format" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "send_preparation_email", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "audience": { + "enum": [ + "assigned_interviewer", + "recruiter", + "hiring_manager", + "team_owner" + ], + "type": "string" + }, + "template": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "send_internal_email", + "type": "string" + } + }, + "required": [ + "type", + "audience", + "template" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "type": { + "const": "verify_calendar_event", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + } +] - changed
Input schema / properties / condition / additionalPropertiesPrevious value: -{}New value: +true - added
Input schema / properties / condition / propertiesAdded value: +{ + "interview_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "step_kinds": { + "items": { + "enum": [ + "candidate_interview", + "reference_check", + "internal_debrief", + "offer_meeting" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + } +} - added
Input schema / properties / delivery_modeAdded value: +{ + "enum": [ + "auto_send", + "auto_draft_review" + ], + "type": "string" +} - added
Input schema / properties / job_posting_idsAdded value: +{ + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / job_scopeAdded value: +{ + "enum": [ + "all_compatible", + "selected" + ], + "type": "string" +} - added
Input schema / properties / nameAdded value: +{ + "maxLength": 200, + "type": "string" +} - added
Input schema / properties / pipeline_stage_idAdded value: +{ + "anyOf": [ + { + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Input schema / properties / starter_keyAdded value: +{ + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Input schema / properties / timingAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "type": { + "const": "immediate", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "delayMinutes": { + "minimum": 0, + "type": "integer" + }, + "type": { + "const": "delay", + "type": "string" + } + }, + "required": [ + "type", + "delayMinutes" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "anchor": { + "enum": [ + "start", + "end" + ], + "type": "string" + }, + "offsetMinutes": { + "type": "integer" + }, + "type": { + "const": "interview_relative", + "type": "string" + } + }, + "required": [ + "type", + "anchor", + "offsetMinutes" + ], + "type": "object" + } + ] +} - changed
Input schema / properties / trigger / enumPrevious value: -[ - "stage_enter", - "stage_exit" -]New value: +[ + "stage_enter", + "stage_exit", + "step_ready", + "booking_created", + "booking_changed", + "step_completed", + "feedback_submitted", + "interview_time" +]
- Added
yardstick_pipelines_clone
1 tool update
- Added
yardstick_talent_search
1 tool update
- Changed
yardstick_interview_sessions_interviewers_assign1 field changed- added
Input schema / properties / notify_interviewerAdded value: +{ + "type": "boolean" +}
3 tool updates
- Changed
yardstick_interview_sessions_scorecard_submit2 fields changed- added
Input schema / properties / ratings / items / properties / item_type / enumAdded value: +[ + "outcome", + "competency", + "skill", + "recommendation" +] - removed
Input schema / properties / ratings / items / properties / item_type / minLengthRemoved value: -1
- Added
yardstick_people_documents_download_url - Added
yardstick_people_documents_list
1 tool update
- Changed
yardstick_people_list1 field changed- added
Input schema / properties / emailAdded value: +{ + "format": "email", + "maxLength": 320, + "type": "string" +}
185 tool updates
- First observed
yardstick_access_grants_create - First observed
yardstick_access_grants_list - First observed
yardstick_access_grants_read - First observed
yardstick_access_grants_revoke - First observed
yardstick_application_interview_sessions_ensure - First observed
yardstick_application_interview_sessions_list - First observed
yardstick_applications_archive_bind - First observed
yardstick_applications_archive_preview - First observed
yardstick_applications_create - First observed
yardstick_applications_email_decision_apply - First observed
yardstick_applications_email_decision_preview - First observed
yardstick_applications_list - First observed
yardstick_applications_read - First observed
yardstick_applications_status_email_poc_bind - First observed
yardstick_applications_status_email_poc_preview - First observed
yardstick_applications_transition_bind - First observed
yardstick_applications_transition_direct - First observed
yardstick_applications_transition_preview - First observed
yardstick_applications_update - First observed
yardstick_ats_imports_apply - First observed
yardstick_ats_imports_dry_run - First observed
yardstick_ats_imports_read - First observed
yardstick_audit_log_list - First observed
yardstick_automation_rules_create - First observed
yardstick_automation_rules_delete - First observed
yardstick_automation_rules_list - First observed
yardstick_automation_rules_preview - First observed
yardstick_automation_rules_read - First observed
yardstick_automation_rules_update - First observed
yardstick_automation_runs_list - First observed
yardstick_built_in_agents_configure_bind - First observed
yardstick_built_in_agents_configure_preview - First observed
yardstick_built_in_agents_enable_bind - First observed
yardstick_built_in_agents_enable_preview - First observed
yardstick_built_in_agents_list - First observed
yardstick_built_in_agents_read - First observed
yardstick_built_in_agents_runs - First observed
yardstick_decision_brief_read - First observed
yardstick_decision_brief_regenerate - First observed
yardstick_departments_create - First observed
yardstick_departments_invitations_create - First observed
yardstick_departments_invitations_list - First observed
yardstick_departments_list - First observed
yardstick_departments_members_add - First observed
yardstick_departments_members_list - First observed
yardstick_departments_members_remove - First observed
yardstick_departments_members_set_lead - First observed
yardstick_departments_read - First observed
yardstick_departments_update - First observed
yardstick_email_automation_settings_read - First observed
yardstick_email_automation_settings_update - First observed
yardstick_email_drafts_discard - First observed
yardstick_email_drafts_history - First observed
yardstick_email_drafts_list - First observed
yardstick_email_drafts_preview - First observed
yardstick_email_drafts_read - First observed
yardstick_email_drafts_send - First observed
yardstick_email_drafts_update - First observed
yardstick_email_sender_connections_list - First observed
yardstick_email_sender_defaults_list - First observed
yardstick_email_sender_defaults_set - First observed
yardstick_email_sender_settings_read - First observed
yardstick_email_template_versions_list - First observed
yardstick_email_templates_list - First observed
yardstick_email_templates_preview - First observed
yardstick_email_templates_preview_customization - First observed
yardstick_email_templates_publish - First observed
yardstick_email_templates_read - First observed
yardstick_email_templates_rollback - First observed
yardstick_email_templates_validate - First observed
yardstick_events_list - First observed
yardstick_final_recommendation_record - First observed
yardstick_identity - First observed
yardstick_integrations_workspace_health_read - First observed
yardstick_interview_plan_drafts_add_competencies - First observed
yardstick_interview_plan_drafts_add_questions - First observed
yardstick_interview_plan_drafts_add_rounds - First observed
yardstick_interview_plan_drafts_add_skills - First observed
yardstick_interview_plan_drafts_clear_competencies - First observed
yardstick_interview_plan_drafts_clear_interview_sequence - First observed
yardstick_interview_plan_drafts_clear_job_skills - First observed
yardstick_interview_plan_drafts_clear_outcomes - First observed
yardstick_interview_plan_drafts_confirm_outcomes - First observed
yardstick_interview_plan_drafts_delete_anchors - First observed
yardstick_interview_plan_drafts_delete_competencies - First observed
yardstick_interview_plan_drafts_delete_questions - First observed
yardstick_interview_plan_drafts_delete_rounds - First observed
yardstick_interview_plan_drafts_delete_skills - First observed
yardstick_interview_plan_drafts_generate_anchors - First observed
yardstick_interview_plan_drafts_generate_competencies - First observed
yardstick_interview_plan_drafts_generate_outcomes - First observed
yardstick_interview_plan_drafts_generate_questions_directions - First observed
yardstick_interview_plan_drafts_generate_rounds - First observed
yardstick_interview_plan_drafts_generate_skills - First observed
yardstick_interview_plan_drafts_list - First observed
yardstick_interview_plan_drafts_read - First observed
yardstick_interview_plan_drafts_update_anchors - First observed
yardstick_interview_plan_drafts_update_competencies - First observed
yardstick_interview_plan_drafts_update_questions - First observed
yardstick_interview_plan_drafts_update_round_directions - First observed
yardstick_interview_plan_drafts_update_rounds - First observed
yardstick_interview_plan_drafts_update_skills - First observed
yardstick_interview_plan_drafts_validate - First observed
yardstick_interview_plans_archive - First observed
yardstick_interview_plans_list - First observed
yardstick_interview_plans_modify_active_bind - First observed
yardstick_interview_plans_modify_active_preview - First observed
yardstick_interview_plans_publish_bind - First observed
yardstick_interview_plans_publish_preview - First observed
yardstick_interview_plans_read - First observed
yardstick_interview_plans_unarchive - First observed
yardstick_interview_sessions_available_interviewers_list - First observed
yardstick_interview_sessions_cancel - First observed
yardstick_interview_sessions_complete - First observed
yardstick_interview_sessions_interviewers_assign - First observed
yardstick_interview_sessions_interviewers_list - First observed
yardstick_interview_sessions_interviewers_unassign - First observed
yardstick_interview_sessions_read - First observed
yardstick_interview_sessions_readiness - First observed
yardstick_interview_sessions_scheduling_link_generate - First observed
yardstick_interview_sessions_scorecard_submit - First observed
yardstick_interview_sessions_start - First observed
yardstick_job_postings_archive_bind - First observed
yardstick_job_postings_archive_preview - First observed
yardstick_job_postings_create - First observed
yardstick_job_postings_list - First observed
yardstick_job_postings_publish_bind - First observed
yardstick_job_postings_publish_preview - First observed
yardstick_job_postings_read - First observed
yardstick_job_postings_update - First observed
yardstick_job_postings_validate - First observed
yardstick_jobs_archive - First observed
yardstick_jobs_attach_artifact - First observed
yardstick_jobs_close - First observed
yardstick_jobs_create - First observed
yardstick_jobs_detach_artifact - First observed
yardstick_jobs_list - First observed
yardstick_jobs_prospect_matches - First observed
yardstick_jobs_read - First observed
yardstick_jobs_update - First observed
yardstick_opportunities_deep_link - First observed
yardstick_opportunities_list - First observed
yardstick_opportunities_next_action - First observed
yardstick_opportunities_read - First observed
yardstick_people_create - First observed
yardstick_people_list - First observed
yardstick_people_read - First observed
yardstick_people_update - First observed
yardstick_pipelines_assign_to_job - First observed
yardstick_pipelines_create - First observed
yardstick_pipelines_list - First observed
yardstick_pipelines_read - First observed
yardstick_pipelines_reorder_stages - First observed
yardstick_pipelines_stages_create - First observed
yardstick_pipelines_stages_delete_bind - First observed
yardstick_pipelines_stages_delete_preview - First observed
yardstick_pipelines_stages_update - First observed
yardstick_pipelines_update - First observed
yardstick_prospect_activities_create - First observed
yardstick_prospect_activities_list - First observed
yardstick_prospect_imports_apply - First observed
yardstick_prospect_imports_dry_run - First observed
yardstick_prospect_imports_read - First observed
yardstick_prospects_convert_bind - First observed
yardstick_prospects_convert_preview - First observed
yardstick_prospects_create - First observed
yardstick_prospects_list - First observed
yardstick_prospects_outreach_create_draft - First observed
yardstick_prospects_outreach_preview - First observed
yardstick_prospects_read - First observed
yardstick_prospects_update - First observed
yardstick_reporting_search - First observed
yardstick_source_links_create - First observed
yardstick_source_links_disable - First observed
yardstick_source_links_list - First observed
yardstick_source_links_read - First observed
yardstick_talent_pool_members_add - First observed
yardstick_talent_pool_members_list - First observed
yardstick_talent_pool_members_remove - First observed
yardstick_talent_pools_create - First observed
yardstick_talent_pools_list - First observed
yardstick_talent_pools_read - First observed
yardstick_talent_pools_update - First observed
yardstick_tasks_deep_link - First observed
yardstick_tasks_list
Related MCP Connectors
- SeleniosOAuthcom.selenios
AI recruiting platform: manage jobs, pipelines, candidate scores and interview transcripts.
Find your next great hire. Review candidates and manage hiring through your AI assistant.
Official 100Hires MCP: AI ATS & Recruitment Software for candidates, jobs, applications, interviews.
- ProbbOAuthcom.probbai
Hiring copilot: shortlist, compare and interview candidates, and grow your talent pool.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with the PeopleBox Applicant Tracking System (ATS) to manage candidates, positions, and recruitment pipelines. It provides tools for searching candidate profiles, adding notes, and tracking application timelines through natural language interfaces.-
- AlicenseNot gradedqualityCmaintenanceEnables electrical contractors to draft and publish job posts, track posting performance, and manage applicants from an AI assistant or coding agent. Employers can review résumés, move candidates through hiring stages, and add private notes, with explicit approval required for publishing, rejecting, and hiring.MIT
- AlicenseAqualityDmaintenanceConnects Claude to the Ashby ATS to manage the hiring pipeline through natural conversation. It enables users to browse jobs, manage candidate profiles, track applications, and coordinate interview stages.245MIT
- AlicenseNot gradedqualityAmaintenanceEnables users to discover applicant tracking system job boards from company domains, list open roles, detect hiring changes over time, and generate hiring summaries across multiple ATS platforms.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.