Two tools with basic verb-noun naming (get_alerts, get_forecast). Both have short descriptions (30-40 chars, below the 50-200 char baseline for LLM-optimized descriptions). Input schemas are present with typed parameters but lack descriptions for all fields. Output is unstructured plain text rather than structured JSON. No error handling guidance, no pagination support, no output schema documentation. Naming is clear but descriptions are too terse to guide LLM tool selection effectively.
Get weather alerts for a US state.
Get weather forecast for a location.
Parameter descriptions missing. 'state' and latitude/longitude parameters have no descriptions explaining format, constraints, or valid ranges. LLMs cannot infer that 'state' expects a 2-letter US state code.
Tool descriptions are too short (30-40 chars vs 50-200 char baseline). 'Get weather alerts for a US state' lacks context on when to use this vs get_forecast, what format state expects, or what the output contains.
Output is unstructured plain text (string return type). No documented output schema. LLMs cannot parse structured fields for downstream tool calls or data extraction. Baseline requires documented return types for 100% of A+ tools.
No error handling guidance. API failures (network errors, invalid coordinates, missing state) return raw exception strings or generic messages. LLMs receive no actionable recovery hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
No input validation or constraint documentation. get_forecast accepts any float for lat/lon with no bounds checking. get_alerts accepts any string for state with no enum or validation. LLMs can pass invalid values.