---
id: 9bb88c66-32bb-4291-896f-7103a0fa00a4
title: 'merge contract truth: CI gate in scratch worktree, never-touch-main, orchestrator integrates; docs lied'
state: closed
labels: []
assignees: []
milestone: null
created: 2026-09-08T07:45:09Z
updated: 2026-09-08T08:14:39Z
---
SOURCE: swarm friction #6 (verified). Behavior is CORRECT and stays:
f0rge merge = CI gate in a scratch worktree, applies patch, runs all
steps, verdict pass|fail, NEVER touches main or git branches;
orchestrator ffs the applied sha + deletes branch + closes the PR.
No auto-integrate (bitter lesson; #20 non-goals). The DOCS lied:
contract line "merge: applies prints conflicts never resolves; PR
stays (state: merged), branch deleted" implies f0rge integrates and
deletes. FIX: contract merge line becomes a true teaching line:
"merge: CI-gates patch in scratch worktree; never touches main or
branches; prints conflicts, never resolves; you integrate (ff) +
delete branch"; same truth in `merge -h` and spec [merge-record,
procedure]. DONE: contract/merge-h/spec all true; golden + budget
tests pass.
