Our CI caught 2 A developer found that running the Go tool `deadcode` on their monorepo uncovered 2,300 lines of unused code, much of it generated by AI models following prompt patterns like 'Add retries with exponential backoff.' After adding `deadcode` to pre-commit and CI, they caught another 400 lines, leading them to treat AI output as 'code that exists' rather than 'code that works.' Our CI caught 2 deadcode tool and I ran it on our monorepo out of curiosity. go install golang.org/x/tools/cmd/deadcode@latest deadcode ./... Two thousand three hundred lines. Functions nobody calls. Structs instantiated once in a test that got deleted. An entire retry wrapper the model hallucinated because "it's best practice." All sitting there, compiling cleanly, passing tests, doing absolutely nothing. The uncomfortable part? Most of it came from prompt patterns we encouraged. "Add retries with exponential backoff." "Make this configurable." "Follow the existing patterns in the codebase." The model did exactly what we asked — it just didn't know which patterns were already dead. We've since added deadcode to pre-commit and CI. Caught another 400 lines this week. The tool isn't perfect — it flags plugin entry points and reflection-heavy code — but the signal-to-noise is good enough that we treat warnings as errors now. What changed: we stopped treating AI output as "code that works" and started treating it as "code that exists." Different standard. The model doesn't know your architecture. It doesn't know what got deprecated last quarter. It only knows what looks plausible. If you're running Go in production and haven't run this tool, you're probably carrying dead weight you don't know about. One command. Takes thirty seconds. Next Our sales reps tested Gemini Chrome — auto-browse is half-baked → /en/threads/6958/