Single tool with minimal definition quality. Tool name 'get_weather' follows verb_noun convention (+), but description is extremely brief (28 chars, below 34-char p10 baseline). Input schema present with proper Zod typing, but parameter description is generic ('city name for weather query'). No output schema documented. Error handling returns fallback random data instead of actionable guidance. Tool lacks idempotency hints, rate-limit warnings, and API dependency disclosure. No pagination despite external API calls. Composition is acceptable (single responsibility) but lacks production polish.
Get weather info for a given city.
Tool description is 28 characters, below p10 baseline (34 chars) and lacks WHEN/WHY context. LLMs cannot determine when to select this tool vs alternatives.
No output schema documented. LLMs cannot plan downstream operations or extract structured fields. Response is JSON-stringified text, not typed fields.
Error handling returns random fallback data instead of actionable recovery guidance. LLMs cannot distinguish real weather from synthetic data or know what to do next.
Parameter description 'city name for weather query' is generic and lacks format/constraint guidance. No mention of supported city formats, encoding, or validation rules.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
External API dependency (wttr.in) not disclosed in tool description. No rate limits, timeout behavior, or fallback strategy documented. LLMs cannot reason about reliability.