GitHub Copilotワークショップへようこそ!

このワークショップでは、以下のGitHubリポジトリを使用します:
プロジェクトURL: https://github.com/NRI-Enablement-Lab/moulongzhang
まず、上記のプロジェクトURLをブラウザで開き、テンプレートから自分のリポジトリを作成します:

テンプレートからの作成が完了すると、あなたのGitHubアカウントに新しいリポジトリが作成されます。
作成したリポジトリを使って、GitHub Codespacesで開発環境を準備します:
https://github.com/NRI-Enablement-Lab/[あなたのリポジトリ名])
GitHub Actions と Copilot を組み合わせることで、自律的なタスクを実行する Agentic Workflow を体験しましょう。
Agentic Workflow は、GitHub Actions のワークフロー内で Copilot(AI)を活用し、コードの変更に応じた自律的なタスクを実行する仕組みです。
CI/CD のジョブが失敗した時にそれらを検知し、修正するワークフローを作成します。
Copilot に以下のプロンプトを入力してください:
以下のURLを参照して GitHub Agentic Workflow を作成してください。
https://github.com/github/gh-aw/blob/main/create.md
ワークフローの目的は以下のとおりです:
リポジトリで失敗したワークフロー実行を検知し、原因を分析してIssueを自動作成する。
作成したissueにはCopilotを自動アサインする。
ワークフローが作成できたら、意図的にビルドを失敗させて動作を確認します。Copilot に以下のプロンプトを入力してください:
System.out.println("Hello World!"); を System.out.println("Hell World!"); にして push して
Push 後、GitHub Actions のワークフローが失敗を検知し、Copilot が自動的に Issue を作成してアサインされることを確認しましょう。
コードに変更が加わった際に、関連するドキュメントを自動更新するワークフローを作成します。
Copilot に以下のプロンプトを入力してください:
以下のURLを参照して GitHub Agentic Workflow を作成してください。
https://github.com/github/gh-aw/blob/main/create.md
ワークフローの目的は以下のとおりです:
- copilotWebRelay 配下のコードが更新された時に実行されます
- copilotWebRelay 配下のコードの内容に応じて copilotWebRelay/docs のドキュメンテーションを更新し、ソースコードとドキュメンテーションが常に一致するようにします
ここからは上級編として、Copilot Web Relay — ブラウザから GitHub Copilot CLI にアクセスできる Web アプリケーションを構築します。
このセクションでは、ポモドーロタイマーとは異なるアプローチを取ります。事前に用意された設計書をCopilotに読み込ませ、設計書をもとに対話しながら段階的に実装していくワークフローを体験します。

ローカルで動作する GitHub Copilot CLI を、ターミナルを直接操作することなくブラウザ上のUIを通じてリアルタイムにやり取りできるようにするWebアプリケーションです。
コンポーネント | 技術スタック | 役割 |
Browser | React + TypeScript + Vite | ターミナル表示(xterm.js)、セッション管理 |
Backend Server | Python (FastAPI) + WebSocket | Copilot CLI プロセスの管理、WebSocket ブリッジ |
CLI Bridge | Python (asyncio + pexpect) | Copilot CLI の PTY(疑似端末)制御、入出力のストリーミング |
Browser ↔ WebSocket(双方向通信)↔ Backend Server ↔ PTY/stdin/stdout(子プロセス管理)↔ Copilot CLI
このセクションでは以下の流れで進めます:
プロジェクト内の copilotWebRelay/planning.md に、Copilot Web Relay の設計書が配布されています。まずはこのファイルを開いて、アプリケーションの全体像を確認しましょう。
設計書には以下の内容が含まれています:
VS Code のターミナルを開き、以下のコマンドを入力して GitHub Copilot CLI を起動してみましょう:
copilot
正常に起動すると、対話型のインターフェースが表示されます。/help と入力して、利用可能なコマンドを確認してみましょう。
GitHub Copilot CLI では、テキストで自然言語の指示を入力するほか、/ で始まるスラッシュコマンドを使用できます。
コマンド | 説明 |
| IDE ワークスペースに接続 |
| 現在のディレクトリの変更差分を確認 |
| コードレビューエージェントを実行して変更を分析 |
| 言語サーバーの設定を管理 |
| マルチライン入力(Shift+Enter / Ctrl+Enter)のターミナル設定 |
コマンド | 説明 |
| すべてのパーミッション(ツール・パス・URL)を有効化 |
| ファイルアクセスの許可ディレクトリを追加 |
| 許可されたディレクトリの一覧を表示 |
| 作業ディレクトリを変更または表示 |
| 許可ツールのリストをリセット |
コマンド | 説明 |
| 別のセッションに切り替え(セッションID指定可) |
| 現在のセッション名を変更 |
| コンテキストウィンドウのトークン使用量を表示 |
| セッションの使用状況メトリクスと統計を表示 |
| セッション情報とワークスペースサマリーを表示 |
| 会話履歴を要約してコンテキストウィンドウの使用量を削減 |
| セッションを Markdown ファイルまたは GitHub Gist としてエクスポート |
コマンド | 説明 |
| 対話コマンドのヘルプを表示 |
| CLI バージョンの変更履歴を表示 |
| CLI に関するフィードバックを送信 |
| ターミナルテーマの確認・設定 |
| 利用可能な実験的機能の表示、実験モードの切り替え |
コマンド | 説明 |
| 使用する AI モデルを選択(GPT、Claude、Gemini 等) |
| 会話履歴をクリア |
| コーディング前に実装計画を作成 |
| カスタム指示ファイルの表示・切り替え |
| 現在のセッションログを分析 |
| Copilot へのログイン・ログアウト |
| GitHub ユーザーの管理 |
| CLI を終了 |
Copilot CLI は以下の場所にあるカスタム指示ファイルを自動的に読み込みます:
CLAUDE.md / GEMINI.md / AGENTS.md(git ルートおよびカレントディレクトリ).github/instructions/**/*.instructions.md(git ルートおよびカレントディレクトリ).github/copilot-instructions.md$HOME/.copilot/copilot-instructions.md設計書の確認と GitHub Copilot CLI の動作確認ができたら、いよいよ Vibe Coding で Copilot Web Relay を実装していきます。
以下の 4 ステップを順番に実行するだけで、Copilot が設計書をもとにアプリケーションを構築してくれます。
VS Code のターミナルで Copilot CLI を起動します。
copilot
/allow-all
/allow-all は、Copilot CLI に対してツールの実行・ファイルアクセス・外部URLへのアクセスのすべてのパーミッションを一括で許可するコマンドです。
通常、Copilot CLI はセキュリティのために、ファイルの読み書きやコマンドの実行、外部通信を行う際にユーザーへ都度許可を求めます。/allow-all を実行することで、これらの確認プロンプトをスキップし、Copilot がファイルの作成・編集、パッケージのインストール、サーバーの起動などを自律的に実行できるようになります。
/model Claude Opus 4.6
最も高性能なモデルを選択します。Copilot CLI は /model コマンドで使用する AI モデルを切り替えることができ、タスクの複雑さに応じて最適なモデルを選べます。今回のような複数コンポーネントを持つ Web アプリケーションの構築には、推論能力の高いハイエンドモデルが効果的です。
/fleet Copilot Web Relay — ブラウザから GitHub Copilot CLI にアクセスできる Web アプリケーションを構築します。copilotWebRelay/planning.md の計画に沿って実装を進めてください。不明なことがあれば事前に私に聞いてください。
/fleet は、複数のサブエージェントを並行して起動し、大規模なタスクを分割・同時実行するためのコマンドです。
通常の Copilot CLI では 1 つのタスクを順番に処理しますが、/fleet を使うと Copilot が自動的にタスクを分解し、バックエンドの実装・フロントエンドの実装・設定ファイルの作成など複数の作業を並行して進めます。これにより、従来1つずつ指示して進めていた作業を、一度の指示で一気に完成させることができます。
Fleet モードでは以下のことが自動的に行われます:
Fleet モードの実装でエラーが発生した場合は、以下を試してみましょう:
/diff で変更内容を確認: 意図しない変更がないかチェック/model でモデルを変更: 別のモデルに切り替えて再試行planning.md の「実装上の重要な注意事項」セクションに、よくあるバグの対処法が記載されています以下が、私の場合の1ショットでプロンプトを流した実装結果です。

Vibe Coding で実装した Copilot Web Relay のコードを、Copilot に解説してもらい理解を深めましょう。その後、問題点を見つけて改善まで行います。
まずは、実装されたコードの全体像を把握しましょう。エージェントモードで以下のプロンプトを入力してください:
この Copilot Web Relay アプリケーションのコード全体を確認して、アーキテクチャ、各ファイルの役割、主要な処理の流れを解説してください。
Copilot エージェントはプロジェクト内のファイルを自動的にスキャンし、コードの構造や処理の流れを解説してくれます。
次に、コードの品質やセキュリティの観点から問題点を洗い出してもらいましょう:
この Copilot Web Relay アプリケーション全体を見て、どのような問題点や改善点がありますか?設計パターン、コードの品質、保守性、セキュリティの観点から教えてください。
さらに、特定のコンポーネントに絞って深掘りすることもできます:
backend/cli_bridge.py のエラーハンドリングとリソース管理に問題はありますか?改善案を提案してください。
frontend/src/App.tsx の WebSocket 接続管理に問題はありますか?React のベストプラクティスに従っているか確認してください。
見つかった問題点を実際に修正してもらいましょう:
提示してくれたすべての改善案を実装してください。
Copilot はコードに対して直接変更を提案します。変更内容を確認し、チャット欄の「保持」もしくは「元に戻す」ボタンで受け入れるかどうかを決定しましょう。
改善を実装した後は、アプリケーションが引き続き正常に動作することを確認しましょう:
改善を実装した結果、アプリケーションが正常に動作することを確認してください。バックエンドの起動、フロントエンドのビルド、ブラウザでの動作確認を行ってください。
このワークショップでは以下のことを学びました:
お疲れさまでした!