Claude-skills merge
Merge the winning agent's branch into base, archive losers, and clean up worktrees.
install
source · Clone the upstream repo
git clone https://github.com/alirezarezvani/claude-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/alirezarezvani/claude-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/engineering/agenthub/skills/merge" ~/.claude/skills/alirezarezvani-claude-skills-merge-093672 && rm -rf "$T"
manifest:
engineering/agenthub/skills/merge/SKILL.mdsource content
/hub:merge — Merge Winner
Merge the best agent's branch into the base branch, archive losing branches via git tags, and clean up worktrees.
Usage
/hub:merge # Merge winner of latest session /hub:merge 20260317-143022 # Merge winner of specific session /hub:merge 20260317-143022 --agent agent-2 # Explicitly choose winner
What It Does
1. Identify Winner
If
--agent specified, use that. Otherwise, use the #1 ranked agent from the most recent /hub:eval.
2. Merge Winner
git checkout {base_branch} git merge --no-ff hub/{session-id}/{winner}/attempt-1 \ -m "hub: merge {winner} from session {session-id} Task: {task} Winner: {winner} Session: {session-id}"
3. Archive Losers
For each non-winning agent:
# Create archive tag (preserves commits forever) git tag hub/archive/{session-id}/{agent-id} hub/{session-id}/{agent-id}/attempt-1 # Delete branch ref (commits preserved via tag) git branch -D hub/{session-id}/{agent-id}/attempt-1
4. Clean Up Worktrees
python {skill_path}/scripts/session_manager.py --cleanup {session-id}
5. Post Merge Summary
Write
.agenthub/board/results/merge-summary.md:
--- author: coordinator timestamp: {now} channel: results --- ## Merge Summary - **Session**: {session-id} - **Winner**: {winner} - **Merged into**: {base_branch} - **Archived**: {loser-1}, {loser-2}, ... - **Worktrees cleaned**: {count}
6. Update State
python {skill_path}/scripts/session_manager.py --update {session-id} --state merged
Safety
- Confirm with user before merging — show the diff summary first
- Never force-push — merge is always
for clear history--no-ff - Archive, don't delete — losing agents' commits are preserved via tags
- Clean worktrees — don't leave orphan directories on disk
After Merge
Tell the user:
- Winner merged into
{base_branch} - Losers archived with tags
hub/archive/{session-id}/agent-{N} - Worktrees cleaned up
- Session state:
merged