An agentic code execution system written in Go that integrates with Claude via MCP, supporting tool execution, session management, and multi-turn conversations
Critical gaps across all dimensions. Tool definitions lack proper schemas, descriptions are minimal (10-20 chars), and parameter documentation is absent. The 'bash' tool is particularly dangerous, no input validation, no error guidance, no permission framework visible in the tool definition itself. 'read_file' and 'write_file' lack path traversal protection documentation. 'echo' is trivial. No tool returns structured output schemas. Error handling is absent from tool definitions. Naming follows verb_noun convention (positive), but descriptions fail to explain WHEN to use each tool or what it returns.
Execute bash commands in the current working directory
Echo a message
Read the contents of a file
Write contents to a file
bash tool has no input validation, no error recovery guidance, and no permission checks visible in definition. Destructive operations (rm -rf /) are unrestricted. Description does not warn of risks or explain when to use vs alternatives.
All tools lack output schema documentation. LLMs cannot predict return structure, forcing them to guess at field names for downstream tool chaining. No documented return types violates baseline (100% of A+ tools have documented return types).
Parameter descriptions are missing or trivial (under 20 chars). 'path' param in read_file/write_file has no guidance on format, constraints, or path traversal rules. LLMs cannot infer whether to pass absolute paths, relative paths, or URIs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
read_file and write_file lack security documentation. No mention of path traversal protection, symlink handling, or permission checks. Agents may attempt to read /etc/passwd or write to system directories.
Tool descriptions do not explain WHEN to use each tool or differentiate from similar tools. 'Execute bash commands' is generic; should explain: 'Use for file operations, package management, or system queries. For file I/O, prefer read_file/write_file. Destructive commands require confirmation.'