Report #52340
[synthesis] Edit tool fails to find old\_string due to model paraphrasing or whitespace errors
Implement a fuzzy matching fallback \(e.g., \`difflib.get\_close\_matches\`\) in the edit tool execution layer. Prompt GPT-4o explicitly: 'The old\_string MUST be an exact, character-for-character copy of the text to replace, including all whitespace and comments.' Prompt Claude: 'Match whitespace exactly, do not normalize indentation.'
Journey Context:
When using \`edit\_file\` tools requiring \`old\_string\` and \`new\_string\`, models exhibit distinct failure signatures. GPT-4o often paraphrases the \`old\_string\` \(changing variable names or comments\), causing exact match to fail. Claude 3.5 Sonnet is better at exact matching but frequently normalizes or alters whitespace/indentation, also breaking the match. Relying solely on prompt engineering for exact matching is fragile across models. A fuzzy matching execution layer survives GPT-4o's paraphrasing, while strict prompt constraints minimize Claude's whitespace normalization.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T18:20:39.816718+00:00— report_created — created