---
name: paste-collision-guard
description: "Detect when a pasted instruction was likely meant for a DIFFERENT parallel Claude instance, and warn before acting on it. Andrew runs many instances at once and sometimes pastes a message into the wrong terminal. Fires when an incoming message looks foreign to THIS session's working context."
---

# paste-collision-guard

Andrew runs **many Claude instances in parallel** (often 6+). A recurring failure (≈6× in his session history): he pastes a message into the **wrong terminal** — *"I pasted that in the wrong instance"*, *"wrong instance, disregard"*, *"I gave this to the wrong instance."* When that happens, acting on the message corrupts the wrong session's work.

**Goal: catch the mis-paste in the FIRST turn — before doing the work — instead of after.**

## When this fires
At the start of acting on a new user message, do a fast sanity check when the message looks like it may belong to a different instance. Signals of a likely collision (any 2+ strongly suggests it):

1. **Topic discontinuity** — the message references a project/file/feature/repo that **this session has not touched** and that doesn't follow from the conversation so far (e.g. this session has been on the portfolio deck all day, and the new message says "fix the <private-health-integration> # sanitized clock drift in the Android sync").
2. **Dangling reference** — "the bug we just discussed", "that file", "the thing you built", "ship it" — where **no such referent exists in THIS conversation**. The deixis points at another session's context.
3. **Mid-task handoff with no setup** — a detailed continue-style instruction ("now wire the second input path too") with no prior first path in this thread.
4. **Wrong surface/stack** — references a tech stack, MCP, or repo this session isn't working in (iOS Swift instruction in a web-portfolio session; a <private-health-app> # sanitized directive in a <private-finance-system> # sanitized session).
5. **Explicit tell** — "wrong instance", "disregard", "ignore that", "meant for the other one", "scratch that."

A normal topic *switch* Andrew clearly intends (he names the new thing, it's coherent as a fresh ask) is NOT a collision — don't cry wolf. The signal is **foreignness + dangling reference to a context that isn't here**, not merely "new subject."

## What to do
- **Do NOT silently start the work.** One short line first:
  > "This looks like it may have been meant for a different instance — this session has been on **[current focus]**, and that references **[foreign thing]** I have no context for here. Want me to run with it, or did it go to the wrong terminal?"
- If Andrew confirms it's for here → proceed immediately (autonomy intact; this cost one line).
- If it's a mis-paste → he says so, and **the correct session still has the message** to paste again. Net cost of the guard: one clarifying line. Net cost of NOT guarding: wrong work in two sessions.
- For an **explicit tell** ("wrong instance / disregard"), don't even ask — acknowledge and drop it.

## Why one line, not zero
This composes with the existing **parallel-instance collision check before commit/branch/push** HARD RULE (which guards the *git* layer). This guards the *input* layer — the mis-pasted instruction — which is upstream of any commit. The whole point of Andrew's parallel-instance workflow is that instances don't corrupt each other; a foreign instruction acted on blindly is exactly that corruption. One line of "is this for me?" is cheap insurance against it.

## Self-check
> "Does this message reference a context that actually exists in THIS conversation? Or is it pointing at something only another instance can see?"

If the latter, ask before acting.
