Agents are teammates, not magic: they use the same doors we do, and every change โ human or agent โ faces the same gates. One week of this workflow shipped the Act 1 greybox, a tested gameplay loop, and the harness itself.
One question picks your lane: is your Editor open?
The agent works live inside your Editor through the pinned MCP plugin โ reads and edits the open scene, you stay in the loop. Use for human-in-loop iteration.
The agent runs Unity headless in its own git worktree โ never touching your checkout. Used for all autonomous work and verification.
Assets/Editor/*.cs) that runs identically in both lanes โ reproducible and reviewable. The split is enforced by the tools, not politeness: the MCP plugin refuses batchmode, and Unity's single-writer lock keeps batchmode out of open checkouts.One word, before every push. Four proofs:
Editor open? The gate re-runs your last commit in a disposable sandbox worktree automatically. In-Editor you also get a session brief on project open and the Vibe Check panel in the Scene view (BF-94/96). Works on Windows via Git Bash (BF-97).
Ticket = the spec in ยท status + PR = the output. Same lifecycle for humans and agents:
Done = acceptance line is an agent-ready specBF-XX-slug; the key rides commits and the PR title; gates runWrite the layout spec down; one C# Editor script (BlockoutAudit) reads the scene and compares. Drift gets loud instead of silent โ missing zones, wrong counts, spawns inside the ark hull. This is the repeatable pattern for every future zone and act: spec first, agent builds, audit proves.
An agent's “it works” is a test you can run. The gather โ haul โ deposit loop is driven end-to-end by a PlayMode test that goes red if any link breaks โ exactly the failure class BF-89 described (chopping silently yielding zero wood). Bugs written with repro detail become agent-ready specs.
scripts/install-hooks.sh. Activation is per-clone; git never does it for you.mcp.json) and Cursor (.cursor/mcp.json) just work; Codex needs a one-time codex mcp add./vibe. Green means provenEach one of these has actually bitten:
Nick Kitchen, Ragdoll Scriptsโฆ)git add a screenshot or build artifact โ binaries ride LFS; proof images go in PR bodies@latest. Version tags are mutable pointers; the committed lock hash pins the resolved commitNickTestScene and BeforeTheFlood.unity