Four tools with explicit schemas and basic descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (get_weather, add_post, delete_post). Descriptions are present but minimal (10-30 chars), below the 50-200 char baseline for LLM-optimized descriptions. No parameter descriptions for any tool inputs. Output schemas are implicit (text responses only) with no documented structure. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles (READ_ONLY, WRITE, DESTRUCTIVE).
Adds a simple text post.
Deletes a post by ID.
Retrieves all posts.
Gets the current weather.
Tool descriptions are critically short (10-30 chars). Baseline is 50-200 chars. LLMs cannot determine when/why to select tools with minimal descriptions.
No parameter descriptions. 'location' in get_weather, 'content' in add_post, 'id' in delete_post lack context. LLMs cannot infer parameter meaning from names alone.
No tool annotations despite explicit risk profiles. delete_post is DESTRUCTIVE but lacks destructiveHint. get_weather is READ_ONLY but lacks readOnlyHint. Agents cannot reason about side effects.
Output schemas are undocumented. All tools return text responses, but structure is implicit. LLMs cannot plan downstream tool calls or extract structured data.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Error messages lack recovery guidance. 'Error: Post content cannot be empty' does not tell the LLM what to do next. Should suggest 'Provide non-empty content and retry.'