Open source terminal-based AI coding agent built from scratch with MCP server integration for extensible tool support
Single tool 'apply_patch' has a detailed description (250+ chars) and clear input schema with two parameters (patch, dry_run). However, the schema lacks critical details: no minLength/maxLength on 'patch', no description for the 'dry_run' parameter, and no documented output schema. The tool description is verbose but does not explicitly state that it modifies files (critical for agents to understand side effects). Parameter descriptions are incomplete, 'patch' lacks format guidance on the multi-file syntax. No error handling guidance provided. The tool is well-intentioned but falls short of production-grade definition quality.
Apply a multi-file patch. Supports creating, updating, deleting, and renaming files in a single operation. **PREFERRED** when editing 2 or more files instead of making multiple separate edit calls. More efficient and allows batching multiple file operations atomically. Format: *** Begin Patch *** Update File: path/to/file.py <<<<<<< SEARCH old content ======= new content >>>>>>> REPLACE *** End Patch Also supports: *** Create File: path - creates new file with content after it *** Delete File: path - deletes the file *** Rename File: old -> new - renames/moves a file
Missing output schema documentation. Tool description does not specify what the response contains (success/failure status, list of modified files, error details). LLMs cannot plan downstream actions without knowing the response structure.
Parameter 'dry_run' lacks description. LLMs cannot infer that this parameter enables preview mode without side effects. Description must state: 'If true, preview changes without applying them; if false (default), apply changes to disk.'
Tool description does not explicitly state that this tool modifies files (creates, updates, deletes, renames). Agents need to know which calls have irreversible consequences. Add: 'This tool modifies the filesystem, changes are permanent unless dry_run=true.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Parameter 'patch' lacks format constraints. Schema should include minLength, maxLength, and description should clarify the exact syntax (SEARCH/REPLACE blocks, Create File, Delete File, Rename File). Current description embeds examples but no formal constraints.
No error handling guidance. Tool description does not explain what happens on invalid patch syntax, file conflicts, or permission errors. Add recovery hints: 'If patch fails, check file paths and syntax. Use dry_run=true to validate before applying.'