At Vibe Code Detector, we look for specific "smells" that indicate code was generated by an LLM. Here are the top signals we analyze.
1. The "Generic Naming" Heuristic
LLMs are trained on massive datasets where foo, bar, data, item, and result are common. Humans working on a specific project tend to use domain-specific names.
2. The "Perfect Structure" Heuristic
Human code is organic. It grows over time. It has "texture"—some functions are long, some are short. Some files are messy.
AI code is often *too* structured. Every function is roughly the same length. Every file has the same import order. It feels sterile, like a hotel room vs. a lived-in home.
3. The "Safety" Heuristic
AI is RLHF-tuned (Reinforcement Learning from Human Feedback) to be safe and helpful. In code, this manifests as defensive programming paranoia.
4. The "Modern Syntax" Lag
LLMs have a training cutoff. They might use var instead of let, or old React class components, or miss out on new features like the toSorted() array method. Humans who follow tech news often adopt these features faster than the models do.
Conclusion
Detection isn't about finding bugs. AI writes bug-free code often. It's about finding *intent*. Human code feels like it was written *for* a purpose. AI code feels like it was written *to satisfy a prompt*.