Parse git merge conflict markers in files and output structured JSON with each conflict's ours/theirs content, line numbers, and surrounding context.
The 'conflicts' tool has a well-structured input schema with proper types and a clear, domain-specific description. However, the tool name 'conflicts' is a noun, not a verb-based action name, which violates the Agentic Tool Pattern for naming. The description is adequate at ~240 chars but could be optimized for LLM clarity. Output schema is not documented in the tool definition, forcing LLMs to infer the response structure from the description alone. Parameter descriptions are present and reasonably detailed, but lack validation guidance (e.g., file path format constraints, context_lines range). No error handling guidance is provided in the description, LLMs have no recovery path if a file cannot be read or conflict parsing fails. Security is adequate for a read-only tool but could benefit from explicit permission declaration. Overall, this is a competent but not production-grade tool definition.
Parse git merge conflict markers in files. Reads files with <<<<<<< / ======= / >>>>>>> markers and outputs structured JSON with each conflict's ours/theirs content, line numbers, and surrounding context. Supports standard and diff3 (|||||||) conflict styles.
Tool name is a noun ('conflicts') rather than a verb-based action. Should be 'parse_conflicts', 'list_conflicts', or 'analyze_conflicts' to clearly signal the action to the LLM.
Output schema not documented. The tool definition does not describe the structure of the returned Result object (files, total, has_diff3, summary, or the nested Conflict structure). LLMs cannot plan downstream operations or extract key fields without explicit output schema documentation.
Parameter 'file' description states it 'Can also accept a single string' but the schema declares type as 'array' only. The implementation supports both via type switching in handleToolsCall(), but the schema does not reflect this. Schema should explicitly allow both string and array, or description should be removed.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | 2024-11-05+ | v1 |
No error handling guidance in tool description. If a file is not found, unreadable, or malformed, the description does not tell the LLM what to do next. Should include: 'If file not found, verify the path. If permission denied, check file access.'
context_lines parameter lacks validation constraints in description. Should state minimum (0 or 1), maximum (e.g., 100), and expected behavior at boundaries. Currently just says 'defaults to 1' without bounds.