AI-pattern detection
How EDITH fingerprints Cursor, Claude, v0, Lovable, Bolt and runs targeted rules per tool.
7 min read5 sections
EDITH scans for tool-specific signatures in files — @cursor:generated comments, // generated by v0.dev markers, Lovable's div attributes, Bolt's URL hints, Claude's commit signatures.
When a tool is detected, EDITH runs that tool's rule pack on top of the universal checks. The dashboard surfaces which tool wrote each finding so you can see patterns.
Cursor's most common failure modes:
- Hallucinated package names that don't exist on npm
- Outdated model strings (
gpt-3.5-turbo,claude-3-opus-20240229) process.env.Xreferenced from a"use client"file without theNEXT_PUBLIC_prefix- Server Actions exported with no
await getUser()gate useEffectdeps containing object literals (infinite loop)
Claude's footguns:
- Silent catches around
JSON.parseandfetch - Floating promises in async handlers
FIXME/TODO/HACKcomments left in code shipped to PRuseEffectwith inline-object dependency
v0 ships beautiful UI but its accessibility is consistently weak:
- Missing
altattributes on<img> <div onClick>used as a button (no role, no keyboard)- Heading skips (
<h1>→<h3>) - Form
<input>without an associated<label>
Lovable and Bolt are great at first-cut full-stack apps but consistently miss the security baseline:
- Tables created without RLS
- Stripe webhook handlers without
constructEventsignature check - JWT stored in localStorage instead of HttpOnly cookies
- Multi-table writes outside a transaction