merge

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

/hub:merge — Merge Winner

/hub:merge — 合并获胜分支

Merge the best agent's branch into the base branch, archive losing branches via git tags, and clean up worktrees.
将最优Agent的分支合并到基准分支,通过git标签归档失败分支,并清理工作区。

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
/hub:merge                                       # 合并最近会话的获胜分支
/hub:merge 20260317-143022                       # 合并指定会话的获胜分支
/hub:merge 20260317-143022 --agent agent-2       # 显式指定获胜Agent

What It Does

功能说明

1. Identify Winner

1. 确定获胜者

If
--agent
specified, use that. Otherwise, use the #1 ranked agent from the most recent
/hub:eval
.
如果指定了
--agent
参数,则使用该Agent。否则,使用最近一次
/hub:eval
中排名第一的Agent。

2. Merge Winner

2. 合并获胜分支

bash
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}"
bash
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

3. 归档失败分支

For each non-winning agent:
bash
undefined
针对每个非获胜Agent:
bash
undefined

Create archive tag (preserves commits forever)

创建归档标签(永久保留提交记录)

git tag hub/archive/{session-id}/{agent-id} hub/{session-id}/{agent-id}/attempt-1
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
undefined
git branch -D hub/{session-id}/{agent-id}/attempt-1
undefined

4. Clean Up Worktrees

4. 清理工作区

bash
python {skill_path}/scripts/session_manager.py --cleanup {session-id}
bash
python {skill_path}/scripts/session_manager.py --cleanup {session-id}

5. Post Merge Summary

5. 生成合并总结

Write
.agenthub/board/results/merge-summary.md
:
markdown
---
author: coordinator
timestamp: {now}
channel: results
---
写入文件
.agenthub/board/results/merge-summary.md
markdown
---
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}
undefined
  • 会话: {session-id}
  • 获胜者: {winner}
  • 合并到: {base_branch}
  • 已归档: {loser-1}, {loser-2}, ...
  • 已清理工作区数量: {count}
undefined

6. Update State

6. 更新状态

bash
python {skill_path}/scripts/session_manager.py --update {session-id} --state merged
bash
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
    --no-ff
    for clear history
  • Archive, don't delete — losing agents' commits are preserved via tags
  • Clean worktrees — don't leave orphan directories on disk
  • 合并前确认 — 先向用户展示差异摘要,确认后再执行合并
  • 绝不强制推送 — 始终使用
    --no-ff
    进行合并,确保提交历史清晰
  • 归档而非删除 — 通过标签保留失败Agent的提交记录
  • 清理工作区 — 不在磁盘上留下孤立目录

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
告知用户:
  • 获胜分支已合并到
    {base_branch}
  • 失败分支已通过标签
    hub/archive/{session-id}/agent-{N}
    归档
  • 工作区已清理
  • 会话状态:
    merged