DEV Community

Cover image for A new (free) tool to detect and measure drift in AI code.
Jonathan Gordon
Jonathan Gordon

Posted on Edited on

A new (free) tool to detect and measure drift in AI code.

Green CI doesn't mean your codebase is healthy. It means the tests you wrote still pass. Everything you didn't write a test for (the skip-navigation link nobody added, the focus target that never gets restored after a modal closes, the CORS policy left wide open on one route) just sits there, invisible, until someone notices the hard way.

This is drift: the silent and accumulating distance between what your code does and what it's supposed to do. It doesn't throw an error. It doesn't fail a pipeline. It compounds, one small shortcut at a time, until "ships fine" quietly becomes "ship with caution."

ReWeaver AI DriftDetector is a free tool we built to make that gap visible. Point it at any public GitHub repo (or private/securely with your permission) and it scans across nine production-readiness dimensions: security, accessibility, reliability, architecture, maintainability, testability, user experience, design consistency, and AI code governance; scoring every commit in the repo's history, not just the latest one. Code streams directly from GitHub; nothing is cached to disk, and private scans leave no trace.

To show you what kind of results a typical scan might get, we ran it against a vibecoded repo that we created: reweaver-ai/meridian-storefront.

The headline numbers:

  • Production Drift Ratio (PDR): 0.4834 — Moderate (≤0.3 is “production ready”)

  • Total drift: 75 hours across 57 files (1.3 hrs/file average)

  • 42 of 270 findings (15.6%) flagged “critical”

  • Only 8.1 of those 75 hours are auto-fixable. The remaining 67 need a human to make a call

  • ~2 dev-weeks (one developer) of accumulated debt, clearable in one sprint

  • Velocity drag: ~2.8 hrs/sprint per developer — 3.7% of sprint capacity lost to drift nobody scheduled time for

  • Risk: 0.74 errors/file: High. Verdict: "Ship with caution"

  • Lifetime pace: ~1.9 drift-hours added per month, every month, for over three years

That auto-fixable number is worth sitting with. A linter with an --fix flag would clear 8 hours of this and call it done. The other 67 hours are exactly the stuff autofix can't touch: judgment calls about what a component should do, not just how it's formatted.

It's not static. Drift has a history

DriftDetector scores every commit, so drift rise and fall over time can show you where shifts occurred instead of getting a single snapshot.

Line chart depicting drift in a codebase on a black background

This repo's timeline (44 commits, going back to May 2023) shows drift climbing steadily, peaking at PDR 0.71 (Severe) and 137 drift-hours in July 2025, then trending back down to today's Moderate (0.48) as the team worked through cleanup.

That arc (degrade, notice, recover) is exactly what you'd expect from a real codebase under real deadlines, and it's the kind of trend a single point-in-time lint pass can't show you.

Where the debt actually lives

Drift isn't evenly spread. In this repo it broke down by dimension like this:

Colored horizontal bar chart of dimensions of drift on a black background

Of 270 findings, 34 are severity-critical, 136 are warnings, and the rest are informational.

Design Consistency accounted for most of the critical count (82.4%) — mostly hardcoded colors and spacing values with no matching design-system token — but the two highest-impact single findings, at 1.6 drift-hours each, were:

On the accessibility side, the pattern was just as consistent: page-level components (FlashSale.tsx, PromoBanner.tsx, index.html, CategoryTile.tsx, GiftCardTeaser.tsx, NavBar.tsx, and others) had no skip-navigation link, meaning keyboard users have to tab through full navigation on every single page, and index.html itself has no <main> landmark, so screen readers can't skip to content at all.

Info cards on a black background showing data on drift location in code

None of this fails a build. All of it is real cost.

Try it on your own repo

The scan is free. Paste a GitHub URL, and DriftDetector returns the same kind of report shown above: drift-hours by dimension, per-file contributors, auto-fixable vs. manual, priority tiers, and a history chart across your commits. All code stays local to you. Nothing leaves your machine.

👉 drift.reweaver.ai

What's your repo's number?

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.