Single tool with explicit registration but significant gaps in descriptions and parameter documentation. Tool name follows verb-noun convention (create-user), which is good, but parameter descriptions are completely missing (null values in schema). Input schema is present with types defined. Output is unstructured text rather than documented schema. Tool annotations are present but descriptions lack context about prerequisites, return structure, and error cases. No parameter validation hints provided.
Create a new user
Parameter descriptions are null/missing for all inputs (name, email). LLMs cannot infer what values are expected without explicit descriptions.
Tool description is only 18 characters ('Create a new user'). This is below the 34-character p10 baseline and lacks WHEN to call it, WHAT it returns, and error recovery guidance.
Output schema is not documented. The tool returns unstructured text ('{type:text, text:...}') with no declared structure. LLMs cannot plan downstream operations when output schema is unknown.
Email parameter accepts a string with no validation constraints. No format hint (email format), length limits, or character restrictions provided. LLM could pass 'not-an-email' and fail silently.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Error handling is generic and non-actionable. 'Error: Failed to create user' gives no hint about cause (duplicate email? invalid format? disk full?) or recovery action. LLM cannot self-correct.
Tool modifies state (writes to disk) but description does not explicitly state this is destructive/persistent. Agent cannot know if it is safe to call idempotently.