Your AI doesn't remember
what it built yesterday.
Find the contradictions in your AI-generated codebase.
Free · Runs locally · Zero data sent
Spot the drift.
These two files were generated by the same AI, one week apart. Both work. But look closer.
import { UserRepository } from '../repositories/user';
import { validateRequest } from '../middleware/validation';
import { requireAuth } from '../middleware/auth';
// Clean repo pattern, auth, validation
export async function getUser(req: Request) {
requireAuth(req);
const { id } = validateRequest(req.params, Schema);
const user = await UserRepository.findById(id);
if (!user) throw new NotFoundError('Not found');
return user;
}import { db } from '../config/database';
// Raw SQL, no auth, no validation
export async function getOrder(req: Request) {
const id = req.params.id;
const rows = await db.query('SELECT * FROM orders...');
if (rows.length === 0) {
return { status: 404, error: 'not found' };
}
return rows[0];
}Both files pass every linter. No tool catches this. VibeDrift does.
Measure your drift.
Five ways AI agents fracture your codebase
Architectural Contradictions
The AI chose three different approaches to the same problem.
Security Gaps
Auth on 8 routes. None on 2. The AI built those routes in a different session.
Hidden Duplicates
The AI already wrote this function. It just doesn't remember.
Naming Inconsistency
camelCase on Monday. snake_case on Wednesday. PascalCase on Friday.
Phantom Scaffolding
You asked for a read endpoint. The AI gave you full CRUD.
Code in. Score out.
Your code passes through four analysis layers. Each one catches what the previous one can't.
File rankings · Code evidence
Layers 1–3 always free, always local. Layer 4 is optional.
Who needs this.
Linters check files.
We check codebases.
| Feature | VibeDrift | ESLint | SonarQube | CodeRabbit |
|---|---|---|---|---|
| ★Cross-file drift | [✓] | [—] | [—] | [—] |
| ★Coherence map | [✓] | [—] | [—] | [—] |
| Runs locally free | [✓] | [✓] | [✗] | [✗] |
| Zero config | [✓] | [✗] | [✗] | [✓] |
| AI-native design | [✓] | [✗] | [✗] | [✓] |
| Zero data sent | [✓] | [✓] | [—] | [✗] |
★ Capabilities only VibeDrift offers
What you get back.
A standalone HTML report. No login. No upload. Open it, share it, archive it.
Generated locally. Zero bytes leave your machine.
Pay for what you use.
+ Coherence map
+ 5 detectors
+ HTML report
+ Unlimited scans
— ML analysis
+ Intent mismatch
+ Deviation classifier
+ AI validation
+ Enhanced report
— GitHub Action
+ GitHub Action
+ PR comments
+ Dashboard
+ Alerts
+ API access
Questions, answered.
ESLint checks files. VibeDrift checks codebases. Linters validate one file at a time against syntax rules — they have no idea that orderService.ts uses raw SQL while userService.ts uses a repository pattern. VibeDrift's drift detectors compare files against each other to find architectural contradictions, naming inconsistencies, and duplicated logic across the entire project.