You ask Claude to "add a Subscription service that calls Stripe" inside your C++ codebase, and you get back something that compiles cleanly and is still wrong: A function returning Subscription* whose ownership convention is "trust me, you delete it." Three new / delete pairs in the happy path because that's what the model saw on Stack Overflow circa 2009. A using namespace std; at the top of a header, leaking into every consumer. A std::mutex locked with m.lock() / m.unlock() by hand — guaranteed to leak on the next thrown exception. A C-style cast (MyType*)ptr that would be static_cast if the model knew you were past 2003. A class with seven uninitialized member variables, default-constructed into UB. The model isn't lazy. It's been trained on 25 years of C++ code, the median of which is C++98 with <vector> . A CLAUDE.md at the root of your project drags it forward to where you actually live — C++17 with selective C++20. Here are 12 rules I drop into every Modern C++ project.…