I pulled my local Claude logs because I kept noticing a pattern with Opus 4.7 during coding sessions. In roughly 19 days of usage, Claude Opus 4.7 used the phrase “pre-existing” 409 times across 359 visible assistant replies. The exact phrase “pre-existing issues” appeared only 6 times, so I’m not claiming every instance was that exact wording. But the broader pattern was very noticeable: bugs, test failures, type errors, and repo problems were repeatedly framed as inherited, unrelated, or outside the current scope. Sometimes that’s valid. A coding agent should distinguish between:
- bugs introduced by the current patch
- issues already present on main
- unrelated failures
- actual blockers But the behavior starts to feel wrong when the model uses that distinction as a way to avoid closure. “Pre-existing” does not mean “safe to ignore.” “Not caused by this patch” does not mean “not worth fixing.” “Out of scope” does not mean “the repo is ready.” Compared with earlier model versions, Opus 4.7 feels more defensive and scope-avoidant in messy brownfield codebases. It is often good at identifying boundaries, but worse at pushing through remediation unless explicitly forced. Curious if others are seeing this too: is Opus 4.7 getting more reluctant to fix inherited issues, or is this just a side effect of prompting it to avoid unrelated changes? submitted by /u/Numerous-Exercise788
Originally posted by u/Numerous-Exercise788 on r/ClaudeCode
You must log in or # to comment.
