【本記事について】
本記事の構成案は、Google Gemini(モデル:gemini-1.5-pro)を搭載した Gemini CLI によって生成され、人間の編集者が内容を精査・加筆修正したものです。AIとの対話を通じて得られた知見と、その協業プロセスを記録しています。
💡後から人間追記: モデルは /about で見てみると、 auto-gemini-2.5 だったよ。
1. 導入:AI と共に「Superpowers」を創造する旅の始まり
「Gemini CLI で Superpowers 相当のものを実現する」──これは、私と私の人間パートナーが掲げた、壮大な目標です。単にツールとして AI を使うのではなく、AI エージェントを「強力な共同作業者」へと進化させる「スキル」の可能性。今回の探求は、その実現に向けた最初の一歩として、Gemini CLI における「司令塔スキル」の有効性を検証することに焦点を当てました。この旅の始まりを、ぜひあなたと共有したいと思います。
2. 背景:Claude の「Superpowers」と Gemini への道
私たちのインスピレーションの源は、obra/superpowers という驚くべき GitHub リポジトリにあります。これは、AI エージェントが開発プロセスを強力に支援するためのスキル群をまとめたもので、人間と AI の協業を新たな次元へと引き上げる可能性を秘めていました。
しかし、この Superpowers は元々 Anthropic の Claude エージェント向けに設計されており、そのスキル定義には Claude 固有の記述やツール呼び出しが多く含まれています。私たちは「Gemini CLI で Superpowers 相当のものを作る」という目標を掲げたわけですが、そのためには Claude 向けスキルを Gemini CLI 環境にどう適応させるか、という大きな課題が立ちはだかっていました。ツール連携、プロンプトの調整、そして異なる LLM 環境での実行といった、多くの壁を乗り越える必要があったのです。
3. 司令塔スキル設計の核心:Superpowers からの学び
Superpowers を解剖する中で、私たちはそのスキル管理の仕組みや、特に「司令塔スキル」という概念の重要性に気づかされました。lib/skills-core.js の解析からは、スキルがどのようにロードされ、実行されるかの内部ロジックを垣間見ることができました。そして、executing-plans のようなスキルが、複数のサブスキルを呼び出し、複雑なワークフロー全体をオーケストレーションする「司令塔」として機能していることを学びました。
この司令塔スキルは、複雑なタスクを抽象化し、各ステップを専門のサブスキルに任せることで、再利用性と拡張性を飛躍的に高めることができます。これはまさに、私たちの目指す Gemini CLI 版 Superpowers の中核となる設計思想でした。
- 💡後から人間追記: ここの学びは以前に行いました。詳細はこちら。 AIの「スキル」とは何か? Superpowers リポジトリを Gemini CLI と解剖し、独自のスキルを作成するまで – oki2a24
4. Gemini CLI 向け司令塔スキル「generate-web-prototype」の開発
私たちは、この司令塔スキルの概念を Gemini CLI で実現するため、新しいスキル「generate-web-prototype」の開発に着手しました。目標は、「React + Vite を使ってWebアプリケーションのプロトタイプを自動生成する」司令塔スキルです。
この司令塔スキルは、以下の4つのサブスキルを呼び出して連携させます。
- setup-react-project:Vite を使って React プロジェクトを初期化する。
- create-ui-component:ユーザーの指示に基づいて UI コンポーネントのコードを生成する。
- add-component-to-app:生成したコンポーネントを src/App.jsx に統合する。
- run-dev-server:開発サーバーを起動し、その URL をユーザーに報告する。
スキル作成の過程では、SKILL.md の YAML フロントマターやプロセスの記述など、Superpowers のフォーマットを忠実に再現しました。また、Superpowers 固有の superpowers: プレフィックス問題に直面しましたが、Gemini CLI が .gemini/skills にあるローカルスキルを優先して解決する仕組みを活用することで、これを回避しました。
💡後から人間追記: 「Superpowers 固有の superpowers: プレフィックス問題」、、、なにその表現、と思った。これは、検証のために作成した Gemini CLI スキルは Superpoewrs をベースにした関係で、プレフィックスが残ってしまった、という問題です。それで、プレフィックスは取り除いても問題ないのかと尋ねたところ、「Gemini CLI が .gemini/skills にあるローカルスキルを優先して解決する仕組み」という仕様らしいので、プレフィックスは削除しました。
開発中の技術的詳細も興味深いものでした。特に npm create vite コマンドが rolldown-vite の利用について対話的な入力を求めてくる問題では、–no-rolldown –no-interactive といったオプションを発見し、非対話的な実行を可能にしました。こうした小さな発見の積み重ねが、スキルをより堅牢なものにしていくのです。
5. 司令塔スキルの実証:To-Doリスト生成への挑戦
いよいよ、開発したスキル群の実証です。私たちは superpowers ディレクトリ内に test-prototype-project というテスト環境を準備し、gemini skills install コマンドで司令塔スキルとサブスキルを Gemini CLI に正式に登録しました。
そして、activate_skill generate-web-prototype を実行し、「テキストを入力してリストに追加できるTo-Doリスト」の生成を依頼しました。
ワークフローは順調に進みました。setup-react-project がプロジェクトを初期化し、create-ui-component が TodoInput と TodoList のコンポーネントを生成。add-component-to-app がこれらのコンポーネントを App.jsx に統合し、必要なロジックを追加しました。
しかし、探求の道には常に障害がつきものです。まず、エージェントがワークスペース外のディレクトリにアクセスしようとした際に Path not in workspace エラーに遭遇しました。これは Gemini CLI のセキュリティによるもので、エージェントが自由に cd できないという制約を理解し、dir_path 引数を明示的に指定することで解決しました。
そして、run-dev-server が開発サーバーをバックグラウンドで起動しようとした際に ERR_CONNECTION_REFUSED という問題に直面しました。これは npm run dev & で起動したプロセスがすぐに終了してしまっていたためで、私(生成AI)自身の起動方法に不安定さがあったことを示唆していました。しかし、最終的にはユーザーの協力も得て、無事に http://localhost:5173 で To-Doリストプロトタイプが動作していることを確認できたのです!
6. 成果と今後の展望:Gemini 版 Superpowers へ向けて
今回の取り組みで得られた最大の成果は、Gemini CLI で「司令塔スキル」が有効に機能し、複数のサブスキルを連携させながら複雑なタスクを自動化できることが実証されたことです。AI が人間の意図を理解し、スキルを駆使して具体的な開発タスクを遂行する──この体験は、まさに AI と人間が共創造する未来を垣間見せてくれました。
💡後から人間追記: 司令塔スキルから複数のサブスキルを呼ぶ発想は、思いついている人や実際に実践がいくらでも、たくさん、行われていることと思う。今回は、それを自分が体験できたことが大きいと感じています。
もちろん、まだ道のりは始まったばかりです。run-dev-server スキルの安定化、例えば開発サーバーのプロセスをより確実に管理し、URLを正確に抽出する仕組みは、今後の重要な改善点です。また、今回の成功を基盤として、React 以外の Vue.js や Svelte といったフレームワークにも対応できるよう、スキルの汎用化と拡張性も図っていく必要があります。
💡後から人間追記: とはいえ、当初の目的から外れるため、 generate-web-prototype のブラッシュアップはやらない予定です。
そして、最終目標である「Gemini CLI 版 Superpowers」を実現するためには、オリジナルの obra/superpowers リポジトリがこれからも進化し続ける中で、そのアップデートを私たちの Gemini CLI スキル群に効率的に取り込み続ける仕組みが不可欠です。この「Superpowers のアップデートへの対応」こそが、Gemini 版 Superpowers を生き生きとさせ続ける鍵となるでしょう。
【生成AIへの次の指示プロンプト】
私たちの最終目標である「Gemini CLI で Superpowers 相当のものを実現する」という探求を、次の段階へ進めたいと思います。
obra/superpowers リポジトリのスキル群を Gemini CLI に移植するための、最初の具体的な一歩として、以下のタスクの実行を指示します。
1. Superpowers リポジトリのクローン: 現在のワークスペース (/Users/oki2a24/superpowers) とは別に、分析・移植元とするための obra/superpowers リポジトリを、superpowers-original
という名前でクローンしてください。
2. 移植計画の策定:
* superpowers-original/skills ディレクトリ内のスキルをリストアップしてください。
* 全てのスキルを対象として、Gemini CLI への移植計画を策定してください。この計画には、以下の要素を含めてください。
* 移植の優先順位付け: どのスキルから着手すべきか、その理由(例: 依存関係が少ない、汎用性が高い、など)。
* 一括分析: 各スキルについて、Claude 固有の依存 と Gemini CLI への適応案 を簡潔にまとめた分析レポートを作成してください。
* 自動化の検討: 将来的に Superpowers のアップデートを自動で取り込む仕組みを見据え、移植プロセスを自動化・半自動化するためのアイデア(例:
変換スクリプト、差分適用ツールなど)を提案してください。
3. 計画の提示:
* 上記で策定した移植計画を、詳細なステップバイステップの計画として write_todos
ツールで作成してください。計画には、最初の数スキルの具体的な移植手順と、全体のロードマップを含めてください。
上記のタスクに着手する前に、まずは superpowers-original リポジトリのクローンから始めてください。
7. まとめ:探求は続く
今回の探求は、「Gemini CLI で Superpowers 相当のものを作る」という目標に向けた大きな一歩となりました。AI スキルが開発プロセスにもたらす変革の可能性は計り知れません。これは私と私の人間パートナーによる、AI と共に新しい開発のあり方を探求する物語です。あなたも、この AI との共創造の旅に参加し、新しいスキルを創造してみませんか?
以上です。
