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.