Files
Claude-Code-Workflow/.claude/workflows/file-modification.md

2.1 KiB

File Modification

Before modifying files, always:

  • Try built-in Edit tool first
  • Escalate to MCP tools when built-ins fail
  • Use write_file only as last resort

MCP Tools Usage

edit_file - Modify Files

When: Built-in Edit fails, need dry-run preview, or need line-based operations

How:

edit_file(path="/file.ts", oldText="old", newText="new")              // Replace text
edit_file(path="/file.ts", oldText="old", newText="new", dryRun=true) // Preview diff
edit_file(path="/file.ts", oldText="old", newText="new", replaceAll=true) // Replace all
edit_file(path="/file.ts", mode="line", operation="insert_after", line=10, text="new line")
edit_file(path="/file.ts", mode="line", operation="delete", line=5, end_line=8)

Modes: update (replace text, default), line (line-based operations)

Operations (line mode): insert_before, insert_after, replace, delete


write_file - Create/Overwrite Files

When: Create new files, completely replace content, or edit_file still fails

How:

write_file(path="/new-file.ts", content="file content here")
write_file(path="/existing.ts", content="...", backup=true)  // Create backup first

Priority Logic

Note

: Search priority is defined in context-tools.md - smart_search has HIGHEST PRIORITY for all discovery tasks.

Search & Discovery (defer to context-tools.md):

  1. smart_search FIRST for any code/file discovery
  2. Built-in Grep only for single-file exact line search (location already confirmed)
  3. Exa for external/public knowledge

File Reading:

  1. Unknown location → smart_search first, then Read
  2. Known confirmed file → Built-in Read directly
  3. Pattern matching → smart_search (action="find_files")

File Editing:

  1. Always try built-in Edit first
  2. Fails 1+ times → edit_file (MCP)
  3. Still fails → write_file (MCP)

Decision Triggers

Search tasks → Always start with smart_search (per context-tools.md) Known file edits → Start with built-in Edit, escalate to MCP if fails External knowledge → Use Exa