Files
Claude-Code-Workflow/.claude/rules/file-modification.md
catlog22 3ffb907a6f feat: add semantic graph design for static code analysis
- Introduced a comprehensive design document for a Code Semantic Graph aimed at enhancing static analysis capabilities.
- Defined the architecture, core components, and implementation steps for analyzing function calls, data flow, and dependencies.
- Included detailed specifications for nodes and edges in the graph, along with database schema for storage.
- Outlined phases for implementation, technical challenges, success metrics, and application scenarios.
2025-12-15 09:47:18 +08:00

3.0 KiB

File Modification

Use edit_file (MCP)

  • Built-in Edit tool failed 1+ times
  • Need dry-run preview before applying changes
  • Need line-based operations (insert_after, insert_before)
  • Need to replace all occurrences at once
  • Built-in Edit returns "old_string not found"
  • Whitespace/formatting issues in built-in Edit

Mode Selection:

  • mode=update: Replace text
  • mode=line: Line-based operations

Use write_file (MCP)

  • Creating brand new files
  • MCP edit_file still fails (last resort)
  • Need to completely replace file content
  • Need backup before overwriting
  • User explicitly asks to "recreate file"

Priority Logic

File Reading:

  1. Known single file → Built-in Read
  2. Multiple files OR pattern matching → read_file (MCP)
  3. Unknown location → smart_search then Read
  4. Large codebase + repeated access → codex_lens

File Editing:

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

Search:

  1. External knowledge → Exa
  2. Exact pattern in small codebase → Built-in Grep
  3. Semantic/unknown location → smart_search
  4. Large codebase + repeated searches → codex_lens

Decision Triggers

Start with simplest tool (Read, Edit, Grep) Escalate to MCP tools when built-ins fail or inappropriate Use semantic search for exploratory tasks Use indexed search for large, stable codebases Use Exa for external/public knowledge

Core Search Tools

rg (ripgrep): Fast content search with regex support find: File/directory location by name patterns grep: Built-in pattern matching (fallback when rg unavailable) get_modules_by_depth: Program architecture analysis (MANDATORY before planning)

🔧 Quick Command Reference

# Semantic File Discovery (codebase-retrieval via CCW)
ccw cli exec "
PURPOSE: Discover files relevant to task/feature
TASK: • List all files related to [task/feature description]
MODE: analysis
CONTEXT: @**/*
EXPECTED: Relevant file paths with relevance explanation
RULES: Focus on direct relevance to task requirements | analysis=READ-ONLY
" --tool gemini --cd [directory]

# Program Architecture (MANDATORY before planning)
ccw tool exec get_modules_by_depth '{}'

# Content Search (rg preferred)
rg "pattern" --type js -n        # Search JS files with line numbers
rg -i "case-insensitive"         # Ignore case
rg -C 3 "context"                # Show 3 lines before/after

# File Search
find . -name "*.ts" -type f      # Find TypeScript files
find . -path "*/node_modules" -prune -o -name "*.js" -print

# Workflow Examples
rg "IMPL-\d+" .workflow/ --type json                    # Find task IDs
find .workflow/ -name "*.json" -path "*/.task/*"        # Locate task files
rg "status.*pending" .workflow/.task/                   # Find pending tasks

Performance Tips

  • rg > grep for content search
  • Use --type filters to limit file types
  • Exclude dirs: --glob '!node_modules'
  • Use -F for literal strings (no regex)