vibe-merge
Final gate before code lands on main. Verifies every condition fresh, then
squash-merges via gh pr merge --squash.
Invoke
/vibe-flow:vibe-merge <PR_NUMBER>
The iron law
Never merge without fresh verification. Three gates, all required:
- CI green —
gh pr checks, all SUCCESS or NEUTRAL - Review approved —
gh pr viewreviewDecision is APPROVED - Mergeable + up-to-date — mergeStateStatus is CLEAN or UNSTABLE, not BEHIND/BLOCKED/DIRTY
Any fail → stop, route:
- CI red →
vibe-dispatch-fix - Behind main →
vibe-rebase - Review not approved → escalate to human
After merge
- Update vibe-kanban issue to
done - Write
state.jsonwithstatus: merged,merge_sha,merged_at - Schedule branch deletion per
archive.delete_branch_after_days
vibe-merge does not call update_workspace(archived=true) — vibe-kanban’s
PR monitor service auto-archives a workspace once all of its PRs reach a
terminal state (merged/closed). Use delete_workspace directly only if you
need an immediate hard delete.
Hotfix bypass
Issues tagged hotfix with ≥ 2 human approvals skip the review gate but still
require CI green. An async vibe-review runs post-merge for audit.
Multi-repo atomicity
If an issue spans PRs on multiple repos, vibe-merge gates all of them before merging any. Merges in dependency order; alerts if the second fails after the first succeeds.