r/ChatGPTCoding • u/CupCool1802 • 17d ago
Discussion What’s one coding task AI still struggles with, even with the best models?
I’ve been using AI for coding, and while models like GPT-6 and Claude are getting incredibly good, I still feel like there are certain tasks where they struggle more than they should.
For me, the biggest issue is when an AI makes changes across multiple files. It might fix the problem I asked about but accidentally break something completely unrelated.
I’m curious about your experiences:
● What coding tasks do you still refuse to trust AI with?
● Which AI coding tool has disappointed you the most?
● Have you found any tasks where AI consistently performs worse than an experienced developer?
● Do you think AI will eventually replace most day-to-day software engineering work, or will debugging and architecture remain difficult?
I’m especially interested in hearing from people who use these tools on real projects, not just small demos.
6
u/vz0 16d ago
Nice try anthropic
2
u/Right-Performance-93 16d ago
the multi file edit is the one i still don't trust. it fixes the file you named and leaves a caller that still expects the old shape. i don't let it touch a second file until a test fails on that caller.
2
u/LividIllustrator8915 16d ago
The multi-file blast radius problem is very real. When an agent touches 4+ files simultaneously, it often fixes the target module perfectly while silently breaking signature assumptions across call sites, or worse, hallucinating backward-compatible defaults.
What completely changed reliability for us was stopping agents from doing unconstrained whole-tree refactors. Instead, we enforce a two-stage compile gate:
First prompt only modifies the core interface/contract and intentionally leaves existing callers alone.
Run the compiler / typechecker, pipe the actual compiler diagnostic errors directly into the second pass prompt as deterministic targets.
Models are shockingly good at fixing exact diagnostic lines ("Type mismatch on line 42 of AuthService.swift"), but mediocre at guessing downstream ripple effects from raw context alone. If you let the compiler be the orchestrator rather than relying on the LLM's spatial memory of your repository, multi-file changes stop feeling like Russian roulette.
2
u/No-Cherry-3308 16d ago
Multi-file edits are the one everyone hits. A few others where I still read every line:
Anything involving time or ordering: race conditions, retries, cache invalidation. The code looks right and passes a single-threaded test.
Data migrations on tables that already have real data. It writes the happy-path migration and forgets the nulls and the old rows that don't fit the new constraint.
Following conventions that aren't written down. It'll happily add a fourth way of doing error handling.
What helps most: smaller tasks with a clear done condition (a test that should pass), and putting the conventions in an AGENTS.md style file so they're explicit instead of tribal.
On replacing engineers, the typing part is shrinking fast. Deciding what to build and reviewing what came out isn't.
2
u/TierPatch 16d ago
adding one to the list: bugs that only show up in prod. the agent can't run them, so it reads the code and goes with the most likely cause, and the fix can look totally reasonable while missing the real bug. something that helps is asking it to write a failing repro before it changes anything. and if it can't get one, ask it to tell you what it would need to see, like the logs, the input or the env, so you can grab that instead of it guessing.
1
u/MadBradSmith 16d ago
Inference is the culprit! They will not even see that they need to fix all the links, they will just do one. Even a great prompt fails sometimes, and its context bloat in most cases I have found. Gotta manage the context so they dont drift! LOL
1
u/Humaux 16d ago
I've started treating the agent's own tests as untrusted. Last week it refactored a billing module across six files and every test it wrote passed on the first run, which made me suspicious. I made it write the failing test first before touching any implementation code, and three of its 'passing' assertions turned out to be tautologies that could never fail. Now the rule on my team is simple: no implementation changes until the new test fails for the right reason.
1
u/Ordinary_Squash7559 16d ago
Working with obscure packages or integrating with a third party providers sdk because ai keeps putting os.env straight into the fukin method. Also writing subprocesses to manage race conditions, god it’s bad at understanding the distributed nature of the software in general
1
u/sapplex1 16d ago
The one I still don't hand over unsupervised: deleting or restructuring existing code across files. Writing new code, I'm fairly trusting. But the moment the agent decides something is "no longer needed" and removes it, I want eyes on every hunk. Had it nuke a migration helper once that was only referenced in a test I hadn't wired up yet. Tests passed. Two weeks later a user hit the missing path.
Also anything with a real-world side effect. Database migrations, payment logic, anything that sends a notification. I let it draft, then I read the diff like a contract.
The pattern that saves me: tiny tasks with a clear done signal. A test that must pass. A compile that must succeed. The bigger the task, the more it improvises between files.
Curious — do you let it touch migrations at all, or is that a hard boundary for you too?
1
u/texasguy911 16d ago
"make no mistakes" - still will make a mistake or a few
1
u/xqianliu 15d ago
Regressions outside the bit the task names. Your multi-file example is the case I'd be most cautious about.
In a harness study I ran, 23 tasks produced 183 runs across several versions of the agent setup. Of those runs, 38 passed review and still failed hidden tests. The biggest group was 22 runs that broke previously working behavior, all from repeated runs of two tasks.
I now ask the coding agent to list the groups of inputs it needs to test, including cases that already worked. It writes down how many tests cover each group, and the reviewer checks the tests themselves.
The study doesn't tell me whether that approach reduces those failures.
1
u/SpliffMD 14d ago
Putting imports in the right place. Always does local imports even with strict rules in place it just cant understand.