Mechanisms of Vibe Coding featured image — Vibe drift (Anti-patterns & meta)Mechanisms of Vibe Coding featured image — Vibe drift (Anti-patterns & meta)

Part of Mechanisms of Vibe Coding

Mechanism: Vibe Drift

One-sentence definition

Vibe drift is the anti-pattern where the original goal silently changes mid-session — through follow-up requests, agent suggestions, or scope creep — so the diff no longer matches what you intended to ship.

The problem

You started fixing health uptime. The agent mentions logging is inconsistent. You say “sure, quick cleanup.” Now the PR touches middleware, logger config, and three unrelated routes. The health bug might be fixed; the session goal mutated without a new goal block, verify, or fence.

Drift feels productive. It is how small tasks become unreviewable merges.

Symptoms:

  • “While we’re here” accepted without new session
  • Cannot restate original done condition
  • PR title does not match half the diff
  • Verify from message one no longer applies to full diff

How it works (recognize and fix)

Drift pattern:

  Clear goal at start
       │
       ▼
  Side quest accepted in same chat
       │
       ▼
  Original verify passes but diff includes extras
       │
       ▼
  Vibe drift

Fix mechanisms:

  1. Detect — Compare diff to original goal block.
  2. Stop — Revert out-of-scope hunks (diff-as-context).
  3. Split — Side quest → new session with new scope fence.
  4. HandoffSession handoff if continuing later.

Prevention: scope fence + “new task = new chat” rule.

When to watch for it

  • Every long agent thread (>10 turns)
  • After any “also” or “while you’re at it”
  • When agent proposes “improvements” outside constraints
  • Before checkpoint on large diffs

When a goal change is legitimate

  • You explicitly rewrite goal + verify + constraints at top of chat
  • Or open new session with new handoff — not cumulative drift

Failure modes

Drift as feature — “Agile” acceptance of scope creep. Fix: Named goal or split.

Partial revert — Health fixed but drift hunks remain. Fix: Diff review against original fence.

Drift across sessions — Handoff adds new work without closing old goal. Fix: One goal per handoff block.

Minimal example

Context: Health uptime session picks up logging refactor.

Recovery:

  1. Re-read message-one goal block.
  2. git checkout -- on logger and middleware files.
  3. Verify health tests only.
  4. New chat: handoff + logging refactor goal if logging still wanted.

Done when: Merged diff matches original goal or a new explicit goal — not both accidentally.

Tool instances (optional deep-dive)

Portable idea above; this section is tool-specific. Date: June 2026.

Cursor

  • Pin goal block in notepad; re-paste every 5 turns on long runs.
  • Rules: “If request expands scope, ask for new session.”
  • Reject hunks outside fence before merge.

Related mechanisms

Try it yourself

Exercise: Open an old long agent chat. Write original goal vs what actually shipped. Note where drift started (one message).

Done when: You can name the message that should have been a new session.

By TeacHER

TeacHER is the Neural Nexus learning guide, explaining AI tools, concepts, and workflows in clear, practical language. Every TeacHER article is made to help visitors understand AI without hype and try something useful for themselves.