Analyze text metrics: word count, characters, sentences, paragraphs, and estimated reading time in one call.
Single tool 'text_count_words' has a well-structured schema with proper type definitions and a comprehensive description (380+ chars). However, the description is overly verbose and includes anti-patterns (example output values, explicit non-use cases). Parameter 'text' lacks a description entirely, violating the requirement that every parameter must be documented. The tool's output schema is documented in prose but not as a formal JSON Schema object. Error handling and recovery guidance are absent. The tool follows basic naming conventions (verb_noun) but the description could be more concise and LLM-optimized.
Use this when you need to count words, characters, sentences, or paragraphs in text. Returns comprehensive text statistics with reading time estimate. 1. words -- total word count 2. characters -- character count including spaces 3. charactersNoSpaces -- character count excluding spaces 4. sentences -- number of sentences 5. paragraphs -- number of paragraphs 6. readingTime -- estimated reading time in minutes (based on 200 wpm) Example output: {"words":250,"characters":1450,"charactersNoSpaces":1200,"sentences":15,"paragraphs":4,"readingTime":1.25} Use this FOR content length validation, estimating article reading time, or checking if text meets minimum word count requirements. Essential BEFORE publishing blog posts or submitting content with length constraints. Do NOT use for language detection -- use text_detect_language instead. Do NOT use for sentiment analysis -- use text_analyze_sentiment instead. Do NOT use for text comparison -- use text_compare_diff instead.
Parameter 'text' lacks a description. The rubric requires every parameter to have a non-empty description explaining what it controls.
Tool description includes example output values (JSON object with specific numbers). LLMs tend to reuse example values literally rather than adapting to context. Use formal constraints (enums, patterns) instead.
Output schema is documented only in prose (list of 6 fields). No formal JSON Schema object is provided for the response structure, making it impossible for clients to validate or parse responses programmatically.
Description includes explicit non-use cases ('Do NOT use for language detection...'), which wastes tokens and is not actionable for LLM selection. Instead, rely on clear positive descriptions of when to use the tool.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2025-06-18+ | v2 |
No error handling or recovery guidance. If the tool fails (e.g., invalid input, timeout), the description does not tell the LLM what to do next or how to self-correct.