みなさんClaude Code使ってますか?
私は会社ではClaude Codeを使っていますが、個人では専らGoogle Antigravityで開発していました。Google Antigravityは、大雑把な指示であっても期待以上に動くものを作ってくれるので、ライトな用途であればプロンプトのやり取りだけで簡単にアプリ開発ができてしまいます。
ただ、生成AIの登場でエンジニアの開発体験が大きく変わった一方で、昨今の情報流出のニュース等にみられる「攻撃側としての生成AIの脅威」も日増しに強くなっています。それを考えると、インターネット上に公開するWebアプリや拡張機能などは、たとえ個人開発であっても、これまで以上にセキュリティを意識した高品質なプロダクトにする必要があると感じます。
会社ではすでにハーネスエンジニアリング、ループエンジニアリング、グラフエンジニアリングの要素を取り入れた開発を行っていることもあり、これを機に個人の開発環境もClaude Codeへ移行することにしました。そして、上記のエンジニアリング手法を実現するための自作プラグイン『GraphOps』を開発し、これを軸としたワークフローへ切り替えました。
今回は、このGraphOpsを使用した開発手法について紹介します。
GraphOpsでできること
GraphOpsは、Claude Code上で「チケットの作成」「リファインによる詳細化」「グラフ構成されたノードに対する処理」を一貫して担う、チケット管理・実行基盤プラグインです。
主な特徴は以下の通りです。
-
チケットごとに生成される実行グラフ
グラフのノードやエッジは固定ではなく、チケットの内容に応じて動的に生成されます。 -
並列実行と差し戻しループ
依存関係のないノードはサブエージェントが並列で処理します。レビューで差し戻された場合は、修正が必要なノードから再実行。「Claude Codeに任せたら一発で終わり」ではなく、レビューに合格するまで品質を上げる仕組みです。 -
レビューゲートと承認ゲート
レビューゲートでは、コード・QA・セキュリティ・非機能など、様々な観点で独立して合否を判定します。一方、承認ゲートでは必ず人間の判断を仰ぎます。これにより、自動化する部分と人が判断する部分を明確に切り分けられます。 -
成果物がすべて残る
計画、Gherkin仕様、テスト結果、実装メモ、レビュー結果、レポートなど、すべての過程がチケットに保存され、Web UIから参照・ダウンロード可能です。Claude Codeが「何を」「なぜ」行ったかを後から正確に追跡できます。 -
プラグインのカスタマイズ
ノード種別ごとの指示やレビュー観点、レポートのテンプレートなど、ノード設計やハーネスに関わる部分は設定画面から柔軟に拡張できます。
GraphOpsのインストール
GraphOpsはClaude Codeのプラグインとして提供されており、下記コマンドでインストールできます。
1. マーケットプレイスの追加
Claude Codeのターミナルで以下を実行し、GraphOpsのマーケットプレイスを登録します。
/plugin marketplace add imahiro-t/graph-ops
2. プラグインのインストール
続けてプラグインをインストールします。
/plugin install graph-ops@graph-ops
GraphOpsの使い方
リポジトリのディレクトリでClaude Codeを起動し、/graph-ops:uiと入力すると以下のようなWeb UIが開きます。
任意のプロジェクト名を入力すると、そのディレクトリに紐付いたプロジェクトが作成されます。あとは新規チケットを作成し、リファイン、実行へと進める流れになります。
チケット作成時からClaude Codeのサポートが入ります。「新規チケット」画面のテキストエリアに大まかな要件を記述するだけで、内容が自動的に整形されます。さらに「リファイン」ボタンを押すことで、より詳細で具体的なチケットへと昇華させることができます。
その後「実行する」ボタンを押すと、Claude Codeがチケットの概要から実行計画を立て、最適な実行グラフを動的に生成し、各ノードの処理を進めていきます。
グラフ内には、各ノードの成果物を専門的な観点からチェックする「レビューゲート」が配置されており、それぞれ別セッションでレビューを実施します。レビューで差し戻された場合は再度上流のノードからやり直しますが、収束制御が組み込まれているため、無限ループに陥る心配はありません。
オートパイロット機能で夜間にチケットが完了
GraphOpsのオートパイロット機能を活用すれば、リファインからリリースまでの全工程を、人間の判断を待たずに自動で進めることができます。
オートパイロットの特徴は以下の通りです。
-
人の介入なしにチケットを完遂
リファイン、グラフの実行、承認ゲートの通過、リリース、申し送りのチケット化まで、子セッションが自動で完遂させます。 -
子チケットをツリーとして処理
作業途中でClaude Code自身が作成した子チケットも拾い上げ、深さ優先で1件ずつ処理します。大きな要件を投げても、派生した作業まで自動で片付けます。 -
20以上のチケットを1セッションで処理
オーケストレーター自身は作業を行わず、各チケットは別ターミナルの子セッションが担当します。オーケストレーターに返るのは3行以内の要約のみなので、コンテキスト溢れを起こさず、派生チケットも含めて1セッション内で処理しきれます。 -
判断をすべて記録
人間の代わりに下した判断は、その理由とともにチケットに記録されます。Web UIの「自動判断」欄からいつでも確認・監査が可能です。 -
ブランチ戦略まで自動化
チケットごとにworktreeとブランチを作成します。子の成果はテストを再実行した上で親ブランチへ取り込まれます。mainブランチへの反映方法は、「ブランチを残すだけ」「PR作成」「マージまで」から選択できます。 -
Web UIでステータス確認
「処理中」「人の判断待ち」「待機中」などのバッジが表示され、全体の進み具合が一目でわかります。
この機能を活用すれば、夜間のうちにClaude Codeに作業を進めてもらい、翌朝に成果物を確認するといった効率的な開発サイクルが実現します。
おわりに
GraphOpsは、ブラックボックス化しがちな生成AIの処理に対して、以下のアプローチを可能にするプラグインです。
- 体系的にハーネス(安全網)を効かせることができる
- レビューゲートを手厚くし、改善ループを回すことで全方位的な品質を高められる
- グラフによる可視化と、各ノードの成果物の一元管理ができる
「プロンプト一発」の行き当たりばったりな開発に比べると、実行時間やAPIコストはかかります。しかし、時間は夜間のオートパイロットでカバーでき、投じたコストはプロダクトの品質向上として明確に還元されます。より安全で高品質なプロダクト開発を目指す上で、GraphOpsは有用な選択肢になるのではないでしょうか。


