Single tool with minimal definition quality. Tool name 'list_dir' is appropriately verb-prefixed and clear. Description is present but generic (28 chars, below 50-char baseline for clarity). Input schema exists with proper JSON Schema structure and type definition, but parameter description is minimal ('Directory path', 14 chars, well below 72-char baseline). No output schema documented. No error handling guidance for LLMs (returns raw error dicts). No parameter constraints (min/max path length, allowed characters). Tool lacks idempotency hints, permission declarations, and security context. Composition is single-purpose (acceptable), but lacks integration hints for chaining.
List all files in specified directory
Parameter description is too brief ('Directory path', 14 chars). LLMs cannot infer format constraints, security implications, or expected input patterns. Should explain: accepted formats (absolute/relative/~), path length limits, symlink handling, and security boundaries.
No output schema documented. Tool returns unstructured dicts with 'error' or 'contents' keys. LLMs cannot plan downstream operations or extract structured data reliably. Should declare: return type (object), required fields (type, path, contents), field types (contents is array of {name: string, type: string}).
Error responses lack recovery guidance. Returns raw error strings ('Path does not exist', 'Failed to read path') without actionable next steps. Should guide LLM: 'Path does not exist. Verify the path exists and you have read permissions. Try list_dir with a known directory like /home or /tmp.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No input validation constraints documented. Parameter accepts any string; no mention of path length limits, forbidden characters, or symlink/traversal handling. Should specify: max path length (e.g., 4096), no path traversal allowed, symlinks followed/rejected.
Tool description (28 chars) is below effective minimum. Does not explain WHEN to use this tool vs alternatives, what data it reveals, or prerequisites. Should expand to 50 - 150 chars: 'List files and subdirectories in a directory. Use this to explore filesystem structure before reading or modifying files. Returns file names and types (file/directory).'