关于 merge
用于从会话中选定胜出的 Agent 分支并合并,同时归档其他分支、清理工作树。适合比较多个 Agent 的工作流,合并前要求用户确认。
主要功能
- 01按评估结果或指定 Agent 选择胜者
- 02以非快进方式合并
- 03用 Git 标签归档失败分支
- 04清理会话工作树
- 05写入合并摘要并更新状态
适用场景
- 01评估后合并排名靠前的 Agent
- 02指定要合并的 Agent 分支
- 03保留其他 Agent 的提交并清理工作树
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill merge安装后在 Claude Code 中输入/merge确认已加载。
详细介绍
/hub:merge — 合并优胜者
将最佳 Agent 的分支合并到基础分支,通过 git 标签归档落选分支,并清理工作树。
用法
/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
功能说明
1. 确定优胜者
如果指定了 --agent,则使用该 Agent。否则,使用最近一次 /hub:eval 中排名第一的 Agent。
2. 合并优胜者
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. 归档落选者
对于每个非优胜 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. 清理工作树
python {skill_path}/scripts/session_manager.py --cleanup {session-id}
5. 发布合并摘要
写入 .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. 更新状态
python {skill_path}/scripts/session_manager.py --update {session-id} --state merged
安全事项
- 合并前与用户确认:先展示 diff 摘要。
- 切勿强制推送:合并始终使用
--no-ff,以保留清晰的历史记录。 - 归档而非删除:落选 Agent 的提交通过标签保留。
- 清理工作树:不要在磁盘上留下孤立的目录。
合并之后
告知用户:
- 优胜者已合并到
{base_branch} - 落选者已通过标签
hub/archive/{session-id}/agent-{N}归档 - 工作树已清理
- 会话状态:
merged
评论
支持 Markdown