How to find some the worst architecture problems in your codebase?
One sign is that one conceptual change forces edits across scattered files because no module owns it.
Ousterhout calls it "change amplification". It's one of the clearest signals of bad architecture. It's sitting in your PR history.
Point Claude at your last 50 merged PRs with this prompt to catch them:
Review these merged PRs as architecture evidence.
"Find PRs that show change amplification: one intended change forced edits across multiple conceptually separate places (files, tests, configs, prompts, docs) because the architecture did not name one clear owner, contract, or boundary.
For each candidate, report:
1. Intended change: the single conceptual change (usually in the PR title/description).
2. Amplification evidence: which files/tests/configs/docs had to change. Cite specific paths.
3. Why this is architectural: why this was not just ordinary feature breadth. Name the missing boundary, owner, or contract.
4. Better architecture: the smallest change that would make the next similar PR local.
5. Mechanical prevention: what test, type, lint, or contract check would catch drift next time.
6. Deletion criterion: what temporary compatibility path should be removed once the new owner exists.
Reject PRs where the breadth was justified (genuine cross-cutting feature) or where the PR was itself a refactor.
Rank by expected future leverage.
Output is a ranked backlog of architectural debt with PR links as evidence. Not a list of bad PRs โ a list of missing boundaries."
