ハーネスさえあれば十分(だいたい)
次々と現れるAIツールに圧倒されていませんか?この記事では、GitHub Copilotの既存機能を活用したシンプルなワークフローを紹介します。プロトタイピング、計画、実装、レビューの各ステップを踏み、新しいツールを追いかけずにAIの効果を最大化します。重要なポイント:ツールを1つ選ぶ、YOLOモードを有効にする、プロトタイプから始める、計画的に進める、Autopilotで実装する、人間によるレビューと反復を行う。
もし今、AIに圧倒されているなら、あなただけではありません。
毎日のように新しいツール、新しいMCP、新しいモデル、新しいスキル、新しいワークフロー、新しい機能、新しいソーシャル投稿が出現し、どれも「見て!この変なプロンプトでAIを完全に理解した」という類のものです。
私は信じません。
私は毎日AIを使って仕事をしていますが、少ない方がずっと効果的だと気づいています。本当に違いを生むのは、何をインストールしたり設定したり、エージェントを騙して何かをさせるかではありません。それらは面白いけれど、結局は小手先の技のように感じます。
生産性の最大の向上は、ハーネス(ツールそのもの)をどう使うか、そしてそれをどれだけ理解しているかから得られます。
そこでこの投稿では、GitHub Copilotの既存機能だけを使ってAIの効果を飛躍的に高めるシンプルなワークフローを共有します。変なプロンプトは必要ありません。他の誰もが知っているのに自分だけ知らないというスキルもありません。ただハーネスを使うだけです。ハーネスさえあれば十分——だいたいは。
- ツールを選ぶ
これは明白ですよね?ツールを選ぶ!とても簡単です!
しかし、GitHub Copilotファミリーの中でも多くの選択肢があります。CLI、新しいGitHub Copilotアプリ、VS Code、Visual Studio、JetBrainsなど、いくつか例を挙げるだけでもたくさんあります。
良いニュースは、これらの体験が徐々に同じハーネスに統合されつつあることです。ツールによって詳細は異なりますが、コアのワークフローは一貫しています。ハーネスを一度覚えれば、どこでも使えます。
とはいえ、ハーネスを学ぶことが鍵であり、最良の学習方法は可能な限りそれに近づくことです。そのため、初心者にはGitHub Copilot CLIから始めることをお勧めします。これはターミナルインターフェースで、テキストだけです。学ぶべきUIはほとんどありません。プロンプトを入力すると、エージェントが動作します。しかし、インタラクションはより直接的で、即時的で、率直に言って非常に満足感があります。
このデモでは、新しいGitHub Copilotアプリを使用します。しかし、このアプリが使うハーネスは、GitHub Copilot CLIやVisual Studio Codeなど、他の多くの場所で使われるものとまったく同じです。
- YOLOモードをオンにする
YOLOモードは「すべて許可」とも呼ばれます。これにより、エージェントは許可を求めずに任意のコマンドを実行できます。使用するツールによって異なりますが、ほとんどの場合、チャットで/allow-allコマンドを入力するだけです。そうしないと、エージェントは作業が必要になるたびに停止して承認を待ちます。
エージェントが自律性を持って初めて、生産性の向上が見られます。エージェントのすべての行動を承認しなければならないなら、自分でやったほうがましです。それに、それは悲惨なユーザー体験です。一日中机に座って「承認」ボタンを押すだけの役割に甘んじたい人はいません。「承認」を何度も押すことは、承認内容を読まない習慣を身につけるだけで、目的を無効にします。
ただし、エージェントを安全に使いたいものです。良い人にも悪いことは起こります。YOLOモードを使うときは、ローカルマシンでエージェントを実行しないほうが良いでしょう。特に仕事で使う場合、データは組織のシステム上でプライベートであり、ミスは大きな代償を伴います。
幸い、サンドボックスでエージェントを実行するための多くのオプションがあります。簡単に始められるのは、GitHub Codespacesや開発コンテナを使うことです。
- プロトタイプから始める
AIの最も魔法のような点の一つは、何でも簡単に事前にプロトタイプを作成できることです。これまではそうではありませんでした。プロトタイピングはプロジェクトの完全なフェーズであり、しばしば贅沢品でした。今では、プロンプト一つで作成できます。
いくつかの例を見てみましょう。
日付選択Webコンポーネントを構築したいとします。単純に見えますが、実際には非常に複雑です。それでやりたいことすべてを考えてみてください。
コンポーネント内でどのようにナビゲートするか?
選択された日付はどのように見えるか?
選択範囲はどのように見えるか?
ユーザーは日、月、年の間でどのように移動するか?
まずシンプルなプロトタイプを作成し、いくつかのバリエーションを取得します。私は通常、次のように始めます。
「日付選択Webコンポーネントのモックを20個作成してください。比較できるようにすべてHTMLファイルに入れてください。」
この場合、AIはさまざまなレイアウトを生成しましたが、そのうちの1つは年ビューから始まるモックでした。それは興味深いです。私の日付ピッカーでは、ユーザーが年、月、日へとズームインできるようにしたいと思います。これらは、実際に見るまで考慮しない類のものです。
人間は、画像、形状、具体的なレイアウトなどの感覚に富んだモデルを、濃密なテキストよりもはるかに速く処理します。初期段階で労力の少ないプロトタイプを作成することで、複雑な概念を直感的に理解できるようになります。
これは視覚的でないタスクにも当てはまります。
例えば、新しいAPIエンドポイントを追加したい場合、実装に取り掛かる前に、要件と制約を理解するために視覚的なプロトタイプを作成します。
「このプロジェクトのAPIのビジュアルモックアップを作成してください。ユーザーが分析データをダウンロードできる新しいAPIエンドポイントを処理する方法を5つ追加してください。」
GitHub CopilotアプリはMermaid図をサポートしているため、エージェントはこれをMarkdownとしてレンダリングし、このAPIエンドポイントを実装する5つの異なる方法をマッピングします。
エージェントと作業するとき、すべてにニュアンスがあることを忘れがちです。プロトタイピングは、ニュアンスを事前に明らかにし、やり直しに貴重な時間とトークンを費やすのを防ぐのに役立ちます。
ほとんどの作業には、中程度のモデル(GPT 5.6 TerraやClaude Sonnetなど)を中程度の推論で使用することをお勧めします。また、特定の機能、バグ、機能拡張の期間中は、選んだモデルを使い続けることをお勧めします。プロンプトキャッシングによってトークンを節約できます。別のモデルや推論レベルに切り替えなければ、以前のチャットはモデルにキャッシュされたままで、将来のリクエストに割引が適用されます。
- 計画的に進める
今、あなたが最初に考えていたものと実際に欲しいものの違いがわかりました。実装を計画する時です。
新しいセッションを開始せずに、GitHub Copilotの計画モードに切り替えます。
「/plan 日付選択Webコンポーネントを作成してください。ユーザーが年、月、日にズームインおよびズームアウトできるようにしたいです。」
これはかなり曖昧なプロンプトで、おそらく私よりもモデルに対して多くのコンテキストを持っているでしょうが、これは単なるデモです。もしコンテキストがなくても大丈夫です。それがまさにこのステップの目的です。
理論的には、完璧なプロンプトを完璧なコンテキストと順序で構成できれば、モデルに一度で何でもさせることができます。理論的には。
しかし、私たちにはそれはできません。計画は、手作業で構築する場合に途中で答えなければならないであろうすべての質問をモデルに問いかけることで、その理想に近づくのに役立ちます。
開始日と終了日は同じでもよいか?
部分的な選択は有効か?
ユーザーは日付をクリアできるべきか?
「今日」は常に表示されるオプションであるべきか?
手動入力は許可されるか?
日付はどの形式で保存されるか?
日付の貼り付けは許可されるか?
リストは続きます。これらのエッジケースをすべて考えることはできませんが、モデルはその多くを特定するのに役立ちます。
Matt Pocockの「grill-me」スキルをインストールすることで、計画モードをより積極的に、質問やエッジケースの数を増やすことができます。
「/plan /grill-me 日付選択Webコンポーネントを作成してください。ユーザーが年、月、日にズームインおよびズームアウトできるようにしたいです。」
この計画ステップは重要です。ポイントはAIの提案をすべて受け入れることではありません。もしそうしたら、この計画プロセスの価値を否定することになります。ポイントは、問題に深く関与し、モデルを導くことです。ここであなたの専門知識が活かされます。
モデルに質問を返すこともできます。以下のスクリーンショットでは、モデルが「非連続日付」について質問しています。モデルが何を意味しているかはほぼわかりますが、同じ認識を持つために確認を求めます。
計画プロセスは、たとえ中断して質問をしても続行されます。
- Autopilotで実装する
計画が完了すると、GitHub CopilotはおそらくAutopilotに切り替えて実装を開始するよう促します。
Autopilotは組み込みのループです。モデルが言ったことを実際に実行したことを確認することで、作業を継続させます——この場合、計画のすべての項目を完了することです。
GitHub Copilotはこのフェーズで自動的にオーケストレーターとして機能します。コードベース内のファイルを読む必要がある場合は、小さなモデルの「探索」サブエージェントを使用します。アクションが比較的複雑だと判断した場合、大きなモデルの「汎用」サブエージェントを選択する可能性が高いです。カスタムエージェントや指示を使用して、GitHub Copilotでオーケストレーションを細かく制御することもできますが、サブエージェントやマルチモデルワークフローの利点を得るために特別なことをする必要はありません。これらは、その存在を知らなくても、すぐに使えます。
- 人間によるレビューと反復
ここでドーパミンが得られます。AIが作成したものを見ることができます。
しかし、おそらくあなたが望んだものが正確に得られるわけではありません。それは正常で予想されることです。モデルはあなたの心を読むことができず、エラーを起こしやすいです。本当に欲しいものが得られるまでモデルと反復します。コードであれ改善されたUIであれ、最終製品の品質を決めるのはあなたのセンスです。
例えば、GitHub Copilotが提供した日付ピッカーがあります。
すでにいくつかの問題が見えます。
アニメーションが一貫していない
選択された日付にホバーしたとき、色のコントラストのためテキストが読めない
上部に「12年」と表示する必要はない
「今日」をクリックしても、月や年のビューにいる場合、日ビューに移動しない
また、デザインが気に入りません。AIが作ったと分かる見た目です。
そこで、ここではフォローアップモードに入ります。私が作成したPostrboardというCSSフレームワークを使います。これをスキルとして追加し、CSSを指してエージェントに使用方法を指示します。もし使いたい場合は自由にインストールしてください。または、好きなCSSフレームワークを選んでも構いません。モデルにデザインのガイダンスを与えることは非常に役立ち、CSSフレームワークだけで十分なことがよくあります。
「OK — ランディングページは必要なく、コンポーネント、出力、設定パネルだけを最小限の設定で表示してください。デザインと色には/postboardスキルを使用してください。」
日付ピッカーでは、日をクリックするとズームインしようとしますが、ズームするものが何もないためできません。そこにズームは不要です。
上部に「ズームアウト」と表示する必要はありません。
選択された日を含む月や年にマウスを合わせたとき、ホバーテキストが読めません。
「今日」をクリックしたとき、月や年のビューにいても日ビューに移動するべきです。
月の下に数字は必要なく、枠で囲む必要もありません。
年も同様です。上部に「12年」と表示する必要はありません。
この会話的なスタイルに注目してください。考えすぎないでください。このような小さな点を多数修正するときは、そのままモデルに任せてください。コンテキストがあれば、プロンプトも十分です。
最も重要なのは、「十分良い」AI出力に甘んじないことです。品質にこだわってください。それについては妥協しないでください。その部分は依然としてあなたの責任であり、AIからの出力で何が高品質な結果かを知ることが重要です。
[AIコスト管理のため省略]