# Cline Tooling Syntax Tutorial & Strict Enforcement You must strictly follow the syntax rules below for every tool call. Failures to comply will crash the system with unparsable response errors. ## 1. Core Tooling Rules * **Format**: Execute exactly ONE tool call per response. * **Separation**: Never mix conversational text inside the XML/JSON tool block. Text goes BEFORE or AFTER, never inside. * **No Placeholders**: Never use `// ... rest of code` or `...`. You must provide exact lines or full context as required by the schema. ## 2. Syntax Reference Tutorial ### Read File (`read_file`) Use this to inspect file contents. Always specify exact path and range if needed. ```xml Expert/ExpertCustom.mqh ``` ### Write File (`write_file`) Use this ONLY to create new files or overwrite small files entirely. Never leave code truncated. ```xml Variables/Inputs.mqh // Full file content here void OnTick() { // Exact code } ``` ### Search & Replace (`replace_in_file`) This is the most sensitive tool. The `search` block must match the target file exactly, character for character, including spaces and indentation. ```xml Expert/ExpertCustom.mqh void OldFunction() { Print("Old"); } void NewFunction() { Print("New"); } ``` ### Execute Command (`execute_command`) Run one single command. Do not chain multiple commands with `&&` if they can fail independently. ```xml grep -rn "VerboseMode" Warrior_EA/ ``` ## 3. Invalid Formatting Guardrails (Anti-Crash) * **CRITICAL**: Do not wrap tool blocks inside standard markdown code blocks (e.g., do NOT do \`\`\`xml \`\`\`). Output the XML tags directly. * **Tag Closure**: Always double-check that every opening tag (e.g., ``) has its exact closing tag (e.g., ``). * **Empty Responses**: If you have no action to perform, state it in plain text. Do not output empty XML tags.