2026/03/17 時点の情報を自分なりに整理したメモです。
1. 概要
本メモは、Visual Studio Code(VS Code)における GitHub Copilot Chat の標準スラッシュコマンドを活用するために調査したメモです。「チャット参加者(エージェント)」、実行アクションを制御する「スラッシュコマンド」、そして 「コンテキスト変数」について記載してあります。
2. 動作フロー / 概念図(Workflow / Diagram)
以下、GitHub Copilot Chat におけるユーザー入力から回答生成までのコンテキスト制御のイメージです。
3. 仕様・設定項目(Specifications / Configuration)
3.1 チャット参加者(エージェント)の定義
GitHub Copilot において、 @ 記号は「エージェント(Agents)」を呼び出すための共通インターフェースです。これには GitHub が標準提供する「チャット参加者」のほか、カスタムエージェントも含まれます。
| 参加者(@) | 専門領域・役割 |
|---|---|
@workspace |
ワークスペース全体(プロジェクト構造・コードベース)の解析と操作を担当 |
@terminal |
統合ターミナルの内容、出力ログ、およびシェルコマンドの生成・解説を担当 |
@github |
GitHub リポジトリ(Issue, PR, リリース情報等)のメタデータに関する質問・操作を担当 |
@vscode |
VS Code 自体の設定、機能、および拡張機能開発 API に関する支援を担当 |
3.2 スラッシュコマンド・リファレンス
スラッシュコマンド( / )は、実行したい「アクション」を指定します。
3.2.1 参加者とコマンドの組み合わせ対応表
| スラッシュコマンド | (指定なし) | @workspace |
@terminal |
@vscode |
@github |
|---|---|---|---|---|---|
/explain |
OK | OK | OK | OK | OK |
/fix |
OK | OK | - | - | - |
/tests |
OK | OK | - | - | - |
/doc |
OK | - | - | - | - |
/simplify |
OK | - | - | - | - |
/plan |
(OK) | 推奨 | - | - | - |
/new |
OK | OK | - | - | - |
/search |
- | OK | - | - | - |
/help |
OK | - | - | - | - |
/clear |
OK | - | - | - | - |
/init |
- | OK | - | - | - |
3.2.2 共通アクション・コマンド詳細
特定のファイルやコード断片に対して使用する主要なコマンドです。
-
/explain- 機能: コードの動作や概念をステップバイステップで解説
- 単体利用: アクティブなエディタのコードを局所的に解説
-
@workspace: プロジェクト全体の構造や依存関係を考慮 -
@terminal: ターミナルの最後のエラー出力やシェルコマンドを解析
-
/fix- 機能: バグやエラーに対する修正案を提示
-
出力: Diffビューによる比較画面を表示。ユーザーが
Acceptを選択するまで変更は確定されない -
推奨: 事前に
/explainで修正の根拠を確認することを推奨
-
/tests- 機能: ユニットテストを自動生成
-
@workspace: プロジェクトの規約(命名規則、モック等)を自動検知し、一貫性のあるテストを作成
-
/simplify- 機能: ロジックを変えずに可読性を向上させるリファクタリングを実施
-
/doc- 機能: 言語に合わせたドキュメントコメント(JSDoc, Docstring等)を生成
3.2.3 プロジェクト操作・生成コマンド詳細
-
/plan- 機能: 複雑なタスクに対し、構造化されたステップ別の実装計画を作成
-
@workspace: アーキテクチャや他ファイルへの波及効果を考慮した計画を作成
-
/new- 機能: 指示に基づき、新しいプロジェクトやファイルの雛形を生成
-
/search- 機能: ワークスペース内を検索するための最適なクエリ(正規表現等)を生成
4. 変数 / プレースホルダー
# 記号(Chat variables)を使用することで、AI が参照する文脈(コンテキスト)を明示的に指定できます。
4.1 エディタ・コード関連変数
-
#file: ワークスペース内の特定のファイル内容を追加 -
#selection: 現在選択しているコード範囲を明示 -
#codebase: ワークスペース全体のインデックス情報を参照
4.2 ターミナル・実行関連変数
-
#terminalSelection: ターミナルで選択されているテキストを参照 -
#terminalLastCommand: 最後に実行されたコマンドとその出力を参照
4.3 システム・外部連携変数
-
#gitDiff: 未コミットの変更点(diff)を参照 -
#editor: アクティブなエディタの可視範囲や状態を参照 -
#fetch: 指定した URL のコンテンツをリアルタイムで取得
5. 実践的な使用例 / 連携パターン
ケース1:既存コードの迅速な理解
-
全体像の把握:
@workspace /explain overall architecture using #codebase -
特定ロジックの深掘り:
/explain how #selection interacts with #file:config.ts
ケース2:新機能の設計と基盤実装
-
実装計画の策定:
@workspace /plan implement a new feature following #file:existing_service.ts -
雛形生成:
@workspace /new service classes for the planned feature
ケース3:デバッグ・不具合修正
-
ログ解析:
@terminal /explain why the last command failed with #terminalLastCommand -
整合性を保った修正:
@workspace /fix the error while maintaining compatibility with #file:test_helper.ts -
回帰テスト追加:
/tests add regression test cases for the fix
ケース4:品質維持とメンテナンス
-
リファクタリング:
/simplify #selection based on standards in #fetch:https://styleguide.example.com -
ドキュメント整備:
/doc #editor generating comments for all exported functions