Drift detection
Catches inconsistencies across features before they compound.
The slow rot
Your first three features follow the patterns perfectly. Server components fetch data. Client components are leaf nodes. Procedures validate inputs. By feature ten, someone (or some agent) took a shortcut. A useEffect fetching data that should come from the server. A procedure missing Zod validation. A component with "use client" higher up the tree than it needs to be.
None of these break anything today. They all break something eventually.
Inside Claude Code, type /drift. It reads your established patterns, then checks your recent features against them. Not bugs. Inconsistencies. The kind of divergence that's invisible in any single file but obvious when you look across fifteen features.
What it checks
Data fetching patterns: are server components actually fetching server-side, or did some features sneak in client-side fetching? Component structure: is "use client" on leaf nodes or creeping up toward pages? Backend patterns: are procedures consistent, migrations following the same conventions, RLS policies on every table?
It also checks whether your docs/built/ references are still accurate. If a feature doc says the key file is features/billing/components/pricing.tsx but that file was renamed or deleted, drift catches it.
What you get
A report with issues ranked by severity. High means something is actively wrong, like a missing RLS policy or server-side oRPC client misuse. Medium means a pattern that works now but will cause problems as the codebase grows. Low means cosmetic inconsistency.
The report offers to fix high-severity issues immediately. You pick what to address or skip it.
/drift # check last 3 features
/drift --all # check everything
/drift --feature billing # check one specific feature
Run it after every few features, or let /monitor schedule it automatically.