Single tool with critical definition gaps. Tool name 'format_markdown' lacks action clarity (format is vague, does it parse, convert, validate, or transform?). Description is adequate (58 chars) but generic. Input schema present with basic type info but parameter description is minimal. Output schema completely undocumented, LLM cannot predict return structure. No error handling guidance. Implementation contains hardcoded return value ('hello world') that ignores actual formatting logic, indicating incomplete/broken tool. Per-tool score: 28/100.
Format plain text into markdown by adding common markdown syntax.
Tool name 'format_markdown' is vague. 'Format' could mean parse, validate, convert, or transform. Use verb_noun pattern: 'convert_text_to_markdown' or 'apply_markdown_syntax' for clarity.
Output schema completely undocumented. LLM cannot predict return type or structure. Must document: returns string (markdown-formatted text) with specific formatting applied (headings, bold, italics, code blocks).
Parameter 'text' description is minimal ('The plain text to format'). Missing format constraints: expected length, character restrictions, line count limits, or encoding. Should state: 'Plain text input (max 10000 chars, UTF-8, newline-delimited lines).'
Implementation bug: function returns hardcoded 'hello world' instead of formatted result. All markdown formatting logic (headings, bold, italics, code blocks) is bypassed. Tool is non-functional.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 29 | 2026-07-28+ | v2 |
No error handling. Tool does not validate input (empty string, null, oversized text) or guide LLM on recovery. Should return structured errors: 'Input too large (got 15000 chars, max 10000)' with retry guidance.