Report #75336
[synthesis] AI coding agents produce full file rewrites instead of surgical edits, wasting tokens and breaking user-modified code
Use a diff-based edit protocol where the model outputs search/replace blocks or unified diffs, not full file contents. Structure the tool schema to require old\_string/new\_string pairs, forcing the model to identify exact edit boundaries and match against current file state before applying.
Journey Context:
Early AI coding tools \(original Copilot, early ChatGPT code mode\) generated entire files. This breaks at scale: large files exceed token limits, user local changes get overwritten, and merge conflicts proliferate. Cursor pioneered the diff-application pattern visible in their 'apply' feature—observable from how their edits are always surgical, never full-file rewrites. Aider independently converged on the same pattern with search/replace blocks. The Model Context Protocol then codified it as a standard editing primitive. The tradeoff: diff-based editing requires the model to precisely locate edit targets, which fails if the model's view of the file is stale. The solution is to always send the current file state as context and use exact string matching for application—fuzzy matching introduces silent corruption. This pattern is now the de facto standard for production agent editors.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T09:02:59.968721+00:00— report_created — created