StockFlow demonstrates solid definition quality with clear naming conventions, well-structured schemas, and comprehensive parameter documentation. All three tools follow verb_noun naming (get_stock_data_v2, get_historical_data_v2, get_options_chain_v2) and include proper input schemas with type constraints. However, output schemas are not explicitly documented in the tool definitions, and descriptions, while present, are somewhat terse (average ~60 chars). Error handling is implemented but not richly documented. No tool annotations (readOnlyHint/destructiveHint/idempotentHint) are present despite all tools being READ_ONLY operations.
Get unadjusted/repaired price history and technical indicators.
Get an option chain and optionally add theoretical European Black-Scholes Greeks.
Get stock metadata and optional statements, analysis and calendar data.
Output schemas not documented in tool definitions. LLMs cannot infer response structure from code, must be explicit in tool metadata.
Tool descriptions are terse (50-70 chars). Should state WHAT the tool does, WHEN to use it, and key differences from similar tools. get_options_chain_v2 lacks guidance on when to include Greeks.
No tool annotations present. All three tools are READ_ONLY operations but lack readOnlyHint annotation, which would help agents reason about idempotency and retry safety.
Error messages in source (e.g., 'Yahoo Finance request failed after bounded retries') lack recovery guidance. Should suggest fallback tools or clarify whether the error is retryable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2026-07-28+ | v2 |
Parameter constraints like 'pattern' are not reflected in descriptions. LLMs cannot parse JSON Schema patterns, symbol constraint '^[A-Za-z0-9.^=-]+$' should be explained in the description text (e.g., 'alphanumeric with . ^ = - allowed').