Three tools present with basic structure but critical gaps. All tools lack parameter descriptions (null values visible in schema). Tool descriptions are present but minimal (10-50 chars, below 194-char baseline). No output schemas documented. No error handling guidance. Parameter schemas use Zod but lack type annotations in descriptions. Tools are READ_ONLY but lack explicit idempotentHint annotations. No composition guidance or chaining IDs returned.
Calculates the sum of two numbers.
Provides a friendly farewell message to the user.
Provides a friendly greeting message to the user.
All tool parameters lack descriptions. Input schema shows null for 'a', 'b', 'name' parameter descriptions. LLMs cannot infer parameter meaning from names alone.
Tool descriptions are too brief (10-50 chars vs 194-char baseline). 'Calculates the sum of two numbers' lacks context on when to use, prerequisites, or return format. Descriptions should be 50-200 chars for LLM optimization.
No output schemas documented. Tool callbacks return {content: [{type: 'text', text: ...}]} but LLMs have no formal schema to parse expected fields. Missing documented return types.
Tool names lack action verbs. 'addUp' should be 'add_numbers' or 'calculate_sum'. 'sayGoodbye' and 'sayHello' use imperative form but lack verb_noun clarity. 90% of A+ tools start with action verbs (get, list, create, search, update).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools return plain text responses with no error classification, retryability hints, or actionable error messages. Missing pattern:recovery-guide.