Projectsへ戻る

Ramune

Coding Agentの作業を依存関係付きのタスクグラフとして管理し、並列実行とGitへの統合を扱うツールです。

View on GitHub

Overview

Ramuneは、Coding Agentが行う作業を依存関係付きのタスクグラフとして管理するツールです。Planner、Worker、Integratorの役割と状態遷移をMCPツールの契約として定義し、次に実行できる作業、完了報告、再計画、Gitへの統合をグラフ上で扱います。

複数のWorkerは隔離されたGit worktreeで作業し、候補コミットを提出します。Integratorが検査と統合を直列に進めることで、並列実行中もcanonical branchへの反映経路を一つに保ちます。状態は会話履歴ではなくファイルへ永続化されるため、Orchestratorやサーバーを再開するときにも作業の位置を読み直せます。

What I Built

  • 依存関係付きタスクグラフ

    作業をノードと依存関係として保持し、実行できるタスクを機械的に決めます。

  • 並列Workerの管理

    複数のWorkerへ作業を割り当て、fenceによって古い完了報告や競合する更新を拒否します。

  • 隔離されたGit作業

    WorkerとIntegratorに分けたworktreeで変更を作り、検査後にcanonical branchへ統合します。

  • グラフの可視化

    保存されたタスクグラフと各ノードの状態をviewerから確認できます。

Problems

  • 複数のCoding Agentが同時に動くとき、タスク状態の更新を直列化すること。
  • Workerの変更をcanonical working treeへ直接書かせず、安全に統合すること。
  • プロセスが終了した場合にも、会話の文脈ではなく永続化した状態から回復できるようにすること。

Results

  • claim、完了報告、再計画、統合をMCPツールとして定義しました。
  • 独立したタスクを複数のworktreeで並列実行し、統合を直列化する仕組みを実装しました。
  • タスク状態と障害理由を.ramune/graph.jsonへ外在化しました。