Mechanisms of Vibe Coding featured image — Negative space (Safety & quality)Mechanisms of Vibe Coding featured image — Negative space (Safety & quality)

Part of Mechanisms of Vibe Coding

Mechanism: Negative Space

One-sentence definition

Negative space is the practice of naming what must stay unchanged — files, behaviors, APIs, and styles — so the agent’s freedom is shaped by explicit exclusions, not by whatever the model assumes is “fair game.”

The problem

You ask for a UI tweak. The agent “helpfully” updates the shared button component used in forty screens. You asked for one page; you got a design system migration. The missing instruction was not what to do — it was what not to do.

Positive prompts (“fix the health check”) leave huge default permission. Negative space fills the gaps: do not change shared components, do not alter public API signatures, do not migrate state management.

Symptoms:

  • Shared modules change when the task was local
  • Public APIs gain breaking fields “for consistency”
  • Generated refactors in files you thought were frozen
  • Reviews become debates about unstated assumptions

How it works

Negative space complements constraints. Constraints are the full guardrail set; negative space emphasizes preservation:

  1. Frozen pathssrc/legacy/ read-only; packages/ui/Button.tsx off limits
  2. Frozen behaviorexisting REST responses must stay byte-compatible
  3. Frozen processno dependency upgrades, no license header sweeps
  4. Frozen stylematch existing patterns; no new abstractions
  Positive goal (what to achieve)
       +
  Negative space (what must not change)
       │
       ▼
  Smaller, safer solution space

List negatives in plain language near the goal. The agent sees what is sacred, not just what is assigned.

When to use it

  • Legacy modules, shared libraries, and generated code
  • Hot paths where regression cost is high
  • Any task adjacent to code you cannot afford to churn
  • After an agent “helpfully” refactors something frozen once — add the negative line permanently to rules

When not to use it

  • Greenfield files with no dependents — negatives add little
  • When the task is the migration — then the goal must say migrate X, not smuggle it via silence
  • Replacing a goal with only “don’t touch anything” — you need a positive outcome too

Failure modes

Only negatives — Wall of “don’t” with no achievable goal. Fix: Pair with goal symptom + verify.

Vague negative“Don’t break anything.” Fix: Name files, APIs, or tests that must stay green.

Stale negatives — Frozen folder later becomes active work. Fix: Update rules when ownership changes.

Contradiction — Goal requires API change; negative says API frozen. Fix: Resolve in planning; one must give.

Hidden negatives — Team knows Button.tsx is sacred; agent does not. Fix: Put standing negatives in project rules.

Minimal example

Context: Health endpoint fix must not touch shared middleware or Docker.

Steps:

  1. Extend the prompt block:
   Goal: GET /health returns { "ok": true } after startup. [verify line]

   Negative space (do not change):
   - src/middleware/** (shared across routes)
   - Dockerfile, docker-compose*, CI workflows
   - Public API routes other than /health response body
   - Package.json / lockfile
  1. If the agent proposes middleware changes, reject: “Violates negative space — find a fix in bootstrap or health only.”
  1. Add recurring negatives to .cursor/rules if this keeps happening.

Done when: Verify passes and frozen paths have zero diff hunks.

Tool instances (optional deep-dive)

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

Cursor

  • Negative space in rules — standing list of frozen paths for the repo.
  • .cursorignore — hard exclude for paths that must never be edited by agent indexing.
  • Diff review — reject any hunk touching negative-space paths before checkpoint.
  • Distinction from constraints: constraints include do-not actions globally; negative space names specific preserved surfaces.

Other tools

CODEOWNERS on frozen paths, linter no-edit zones, Aider CONVENTIONS.md “sacred files” section — portable pattern.

Related mechanisms

  • Constraints / guardrails — broader limit set including negatives
  • Scope fence — session boundary; negative space defines sacred interior
  • Goal — positive target negatives protect while reaching

Try it yourself

Exercise: List three frozen items for your next agent task — one path, one behavior, one process rule. Add them under a Negative space: header in the prompt.

You need: One upcoming task; two minutes

Done when: A teammate reading only your prompt would know what is off limits without oral tradition.

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.