Skip to main content

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:

  1. CI greengh pr checks, all SUCCESS or NEUTRAL
  2. Review approvedgh pr view reviewDecision is APPROVED
  3. 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.json with status: 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.

Full reference

skills/vibe-merge/SKILL.md on GitHub →