mcpField
M
merge

merge

github.com/alirezarezvaniエージェントワークフロー28.9k1.4k 回インストール2 日前に更新
リポジトリ

merge について

セッション内で勝者のエージェントブランチを選び、他のブランチをアーカイブしてワークツリーを整理するスキルです。複数のエージェントを比較する際に使い、マージ前にユーザーの確認を求めます。

主な機能

  1. 01評価結果または指定エージェントから勝者を選択
  2. 02非早送り方式でマージ
  3. 03Gitタグで敗者ブランチをアーカイブ
  4. 04セッションのワークツリーを整理
  5. 05マージ概要の記録と状態更新

活用シーン

  1. 01評価後に上位エージェントをマージ
  2. 02マージ対象のエージェントブランチを指定
  3. 03他エージェントのコミットを保全して作業ツリーを整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill merge

インストール後、Claude Code で/mergeを入力して読み込まれたか確認します。

詳細

/hub:merge — 勝者をマージ

最優秀エージェントのブランチをベースブランチにマージし、敗者のブランチを 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 が指定されている場合は、そのエージェントを使用します。指定されていない場合は、直近の /hub:eval で第1位にランク付けされたエージェントを使用します。

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. 敗者をアーカイブする

勝者以外の各エージェントに対して、次を実行します。

# 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

安全性

  • マージ前にユーザーに確認する — まず差分の概要を提示します
  • 強制プッシュは決して行わない — 履歴を明確にするため、マージでは常に --no-ff を使用します
  • 削除せず、アーカイブする — 敗者のコミットはタグで保持されます
  • ワークツリーをクリーンアップする — ディスク上に孤立したディレクトリを残さないでください

マージ後

ユーザーに次の内容を伝えます。

  • 勝者が {base_branch} にマージされたこと
  • 敗者がタグ hub/archive/{session-id}/agent-{N} でアーカイブされたこと
  • ワークツリーがクリーンアップされたこと
  • セッションの状態:merged

コメント