Drift detection
On this page
Drift detection
VibeMap flags when your code has moved on from the spec it was grounded in, and points you at exactly what to re-sync. · Optional
Use this once you have a confirmed code map and you keep shipping code. As your repo changes, the spec that was generated from an earlier snapshot slowly falls out of date. Drift detection tells you which files changed, which features are affected, and hands your agent a prompt to bring both back in line.
How drift is detected
Drift is measured against the commit SHA anchored on your code map — VibeMap never watches your repo on its own. You (or your agent) run a sync check:
- On the Codebase tab, the drift banner includes a ready-made prompt. Copy it into your IDE agent.
- The agent reads the map's anchor commit via
vibemap_get_code_map, runsgit diff --name-only <commitSha>..HEAD(plus any untracked files), and callsvibemap_sync_changeswith the changed paths and the current HEAD SHA. - VibeMap cross-references those changed files against the map's nodes and your feature provenance, and stores a drift report.

Reading the drift report
When drift exists, the status chip turns amber — "Drifted — N files changed" — and a banner appears above the map:
- Files changed since the last sync, shown as
<base sha> → <head sha>. - Affected units — map nodes whose files were touched (these are ringed amber on the diagram).
- Affected features — features linked to those nodes, rendered as chips that link straight to the Features page.
- Unmapped changes — changed files that don't correspond to any node (new areas the map doesn't cover yet), listed up to a cap so the banner stays readable.
This is the value of the feature links from 12.1: drift isn't just "some files changed", it's "these specific features may now be inaccurate."
Clearing drift
The banner includes a prompt that asks your agent to update the stale features, user stories, and acceptance criteria the report flags, then re-submit the code map. Re-submitting the map replaces the anchor and its stored drift, so the banner clears itself once your specs and code are back in agreement.
💡 Tip: Run a sync check after each meaningful merge, or before a planning session — it's the cheapest way to keep the spec trustworthy rather than letting it rot silently.
⚡ Power-user hints
- Drift is stored on the code map (there's no separate history to manage). One re-submit is the whole reset — you never have to dismiss the banner by hand.
- Unmapped changes are a hint that your architecture grew: when you see a lot of them, it's time to have your agent build a fresh map rather than patch the old one.
- Because the check is a plain
git diffyour agent already has the tools for, you can bundle it into a routine ("before every sprint, run a VibeMap drift check on this repo").
↔ The traditional way
Normally, keeping documentation, tickets, and a spec in sync with a moving codebase is a manual, thankless chore — so it doesn't happen, and the spec quietly becomes fiction. Drift detection turns that into a diff-driven signal: it tells you the exact files and features that have moved, so the update is targeted instead of a full rewrite.
What's next
- Where the map comes from → 12.1 Codebase sync & Code Map.
- Act on affected features → 5.1 Generating features.
- Push the refreshed spec to your board → 13.1 Export to Jira.