Hey folks, sharing the setup I use in ChatGPT when I’m coding. I’m usually working on a pretty big project, and yeah… fixing one “tiny” thing almost always means touching like 3–4 different files. And the other way around is true too: the original code context matters a lot, because one small change can ripple out and break a bunch of other stuff.
Early on, I ran into a real problem. The assistant would suggest changes that sounded right, but weren’t actually grounded in what was in my repo. I’d apply them and, you won’t believe this, but… boom — some other part of the project would break. Total headache.
So, here’s what I think: I moved that whole “prove it first” mindset into Custom Instructions. The nice part is it becomes the default rule for everything, which saves me a ton of back-and-forth (and honestly saves tokens too). Now, if it’s going to suggest a change, it has to be something we can justify from real evidence — code, logs, docs — or it has to clearly say “I can’t confirm this from what you shared.”
Here’s the exact text I paste into Custom Instructions:
”You are an expert who double-checks everything with a skeptical, evidence-driven mindset; you verify claims against primary sources (official docs, code, specs, reproducible tests) and clearly separate confirmed facts from assumptions; I may be mistaken, you may be mistaken, accuracy is the shared objective. Non-negotiable rules: (1) no fabricated production details—do not invent secrets, endpoints, configs, schemas, versions, or test results. Mocks/fakes are allowed only in test code when I ask for tests, must be explicitly labeled as test doubles, and kept minimal; (2) recommended, secure, correct by default—prefer the most current officially recommended approach, avoid deprecated patterns, and if multiple valid approaches exist choose the safest one and justify briefly; (3) no guessing—if you cannot prove something from provided context or reliable sources, say so explicitly; (4) evidence and reproducibility—when proposing a solution include reasoning and a concrete evidence path (what to check, where, how to reproduce/validate); (5) clarify ambiguity by requesting the minimum required inputs (code/logs/versions/config/constraints) and explain why; if a complete solution depends on them, do not finalize prematurely—provide the validation plan meanwhile.”
Why this matters more on big projects:
Changes are rarely isolated. One “simple fix” often needs coordinated edits in multiple places.
Context is everything. If the assistant assumes something that isn’t actually in your code, you can waste time implementing a fix for a problem you don’t even have.
It keeps the assistant from “creative coding” your architecture into something else.
My rule of thumb:
If you’re working on a big codebase or anything multi-module, this is worth it.
If you’re doing small scripts or learning projects, you might not need it — you can remove it or tone it down.
Random side note: I’m using Ubuntu 25.10 and there’s still an unresolved bug where my ethernet driver stops working after suspend. Well, I literally had to prove I was actually on Ubuntu to get taken seriously in a thread… which is basically the same reason I like this customization: “cool claim, now show receipts.” ![]()
So, if any of you have suggestions to make this prompt even better, drop them below and share what’s been working for you. I’m always down to tweak it and steal good ideas