学生よ、GitHub Copilot と共に生きよ
初めましての方は初めまして。
そうでない方はいつもお世話になっております。
今日も元気に走り続ける陸上のマグロこと、P4W4P6です。学生と会社員を反復往復してるため、現役の方で馴染みが無い人もいると思いますが、以後お見知りおきを。
この記事はWMMC Advent Calendar 2025 の8日目の記事です。枠空いてたのと、読んでて懐かしくなったので思わず筆を取った次第。
昨日の記事はdaphnia_Eさんの「
迷子スキルS級の私が“求心法+壁情報管理”で現実世界を攻略しようとして爆散した話 - et0308’s blog
」でした。
目的と方角を覚えること、自分の向いている方角を知ること、この2つのスキルは磨かないと現代社会は厳しいですよね。ひとまず北へ向かいましょう。北は上です。
今回は学生の味方、生成AIの中でも最近私が懇ろにしているGitHub Copilot の布教とtipsになります。久しぶりに技術的な話でも書いてみるかと思い立ち、私の生活の中に溶け込んでいる今や欠かせぬパートナーとの蜜月の日々やその工夫をご紹介します。
青色は外部リンクへ飛ぶのでご注意ください。
目次はコチラ。
- あなたを知りたくて(GitHub Copilotとは)
- Copilotと貴方の健全な関係性(AIエージェントとのやり取りのススメ)
- 2人で決めたルール(AIの再現性を得る工夫)
- おすすめの家財道具(VSCode拡張)
- あなたとの未来予想図(AIに溢れた世界で君たちはどう生きるか)
あなたを知りたくて(GitHub Copilotとは)
生成AIの中でも、ソフト開発者方面でホットかつ活用が期待されている概念として「AIエージェント」というものがあります。
一般的な生成AIはチャット形式で答えてくれるものが主流ですが、AIエージェントは目標に向かって自律的に時には外部ツール(スクリプトとかライブラリ等)を使いながら状況を判断、計画、実行する強力なシステムを指します。単なる提案じゃなくて、実際にファイルを作ったり編集したり、ターミナルでコマンド叩いたり、エラーを見て自分で直したりするので、作業自体をタスクとしてお願いすることも可能です。
Windsurf, Devin, CursorなどAIエージェントが埋め込まれたエディタもかなり広く使われているかと思います。
AIエージェントの強力さはローカルPC内のファイル操作や環境構築をゴリゴリ進めるところです。例えば、マイクロマウスのプログラム。ファイル数は何十ファイルもあり、ライブラリを含めると100ファイルなんてザラでしょう。これを1ファイルずつ読み込ませて、全体の構造を理解させ、改良案を提案させるのは大変です。
AIエージェントでは「このディレクトリ以下のプログラムを読んで、改良案を掲示せよ」で1発で進み始めます。コマンドやシェルを叩いて進めるので、その作業スピードは驚くと思います。
GitHub Copilotとは、GitHub(実質的にはMicrosoft社)が提供するAIエージェントのインターフェースです。内部的にはOpenAI社のchatGPTやAnthropic社のClaude Sonnetシリーズですが、これらがAIエージェントとして働く仕組みを提供しています。これはIDEに埋め込むプラグインが多数あり、私はVSCodeとCubeIDEにGitHub Copilotのプラグインを導入しています。基本的には拡張機能や対応しているファイルなどの関係でVSCodeがおすすめです。
ちなみに、GitHub Copilot は無料版と有料版がありますが、学生は無料で有料版が使えます。2025年12月現在はAIエージェント向けのモデルとして、Claude Sonnet 4.5まで選択可能です。
Copilotと貴方の健全な関係性(AIエージェントとのやり取りのススメ)
プログラムは人間が読んで理解するには不向きなファイル形式です。バイナリやアセンブリよりはかなり読みやすいですが、それでも全体把握には課題があると言わざるを得ません。
そんな中、AIが作ってきたプログラムをどうやったら信用できますか?全部読みます?単体テストコードを書いてテストする?神に祈る?
AIエージェントが作ったコードであっても、その責任は人間に帰属します。AIが書いたコードで大会に負けたり、事故で死傷者が出ても、GitHubは責任を取ってくれません。
私はGitHub Copilotを使う際には、生成したコードの設計書や概要報告書をMarkdownとMermaid記法ベースで作成させ、AIとのレビュー会を行っています。報告書を読みながら、質問し、必要ならコードの何行目にその内容が記載されているかAIに回答させて、確認しています。サマライズしてビジュアライズしてあるので、全体把握と気になった点のすり合わせが容易になります。
具体的には、こんな感じのフローです:

こうすることで、いきなりコードを読むより圧倒的に楽に全体を把握できます。
あとはドキュメントや文章の肉付けです。報告書やレポート、そういった形式が決まっているものに関しては、大体書きたい内容とチェックすべきことを箇条書きで順番に記載し、それらをたたき台として、GitHub Copilotで資料を作成してもらうなどですね。
何をAIに任せて、どこで人間が確認するか、この観点は重要です。
個人開発ならバグ踏んでも自己責任ですが、どこまで責任を取るか、ライン引いて決めると動きやすくなりますね。
2人で決めたルール(AIの再現性を得る工夫)
さて、AIとの健全な関係性を築くには、決め事が必要です。GitHub Copilotと作業するうえでいろいろな工夫を入れています。
興味があるものは調べてみてください。
.GitHubファイルの生成
プロジェクトのルートに.githubディレクトリを作成し、そこにAIへの指示を記載したcopilot-instructions.mdを配置します。これによって、プロジェクト全体を通してGitHub Copilotに共通の文脈や制約を伝えることができます。例えば「このプロジェクトではC++17を使用する」「変数名はスネークケースで統一」といったルールを書いておくと、AIが生成するコード全体に一貫性が生まれます。この手法はチーム開発でも有効で、メンバー全員が同じAIの振る舞いを期待できるのは大きなメリットです。さらにIssueテンプレートやPull Requestテンプレートも.githubに配置すれば、開発フローまで標準化できます。マイクロマウスでは個人開発で旨味が薄いですけどね…
実際のディレクトリ構成はこんな感じ:
.github/
├── copilot-instructions.md # AIへの全体指示
├── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ └── feature_request.md
└── PULL_REQUEST_TEMPLATE.md
一度設定すればずっと効果が続くので、プロジェクト開始時に作るようにしてます。
instruction.mdの設定
プロジェクトルートにinstruction.mdを配置すると、GitHub Copilotがそのファイルをプロジェクトのガイドラインとして参照します。.github/copilot-instructions.mdと似ていますが、こちらはより柔軟で、プロジェクトの概要、アーキテクチャ、命名規則、禁止事項などを自由に記述できます。私は「このプロジェクトの目的」「使用技術スタック」「ディレクトリ構成の意味」「コーディング規約」「テスト方針」などを箇条書きで明記しています。特に複数のプロジェクトを並行で進めるときは、各プロジェクトのinstruction.mdを充実させることで、AIが混乱せず適切なコードを生成してくれます。数百行のコードを読ませるより、数十行のinstructionを書く方が効率的です。
実際の記載例:
# プロジェクト概要
マイクロマウス制御プログラム(クラシック競技用)
## 技術スタック
- 言語: C++17
- マイコン: STM32F4
- IDE: STM32CubeIDE
- ビルドツール: CMake
## コーディング規約
- 変数名: snake_case
- 関数名: camelCase
- クラス名: PascalCase
- 定数: UPPER_SNAKE_CASE
- グローバル変数禁止(constは可)
## アーキテクチャ
- src/: ソースコード
- System/: 探索走行、最短走行、モード選択など
- Maze/: 迷路解析、経路導出
- Module/: センサー処理、走行処理など(壁検知, ジャイロ、直進等)
- Hardware/: 最低レイヤ
- tools/: 解析ツールやテストコード残し
こうやって書いておくと、AIも「あ、このプロジェクトはこういう方針なんだな」って理解してくれます。
ファイル別インストラクション
特定の言語やファイルタイプに特化したインストラクションも設定できます。例えばpython-instruction.mdを作成すれば、Pythonファイルを編集するときだけその指示が有効になります。私はMarkdownファイル用に「見出しレベルは適切に使う」「コードブロックには言語指定を必ず入れる」といったルールを、Python用には「型ヒントを必ず使う」「docstringはGoogle形式で」といった指示を記載しています。ファイル別に細かく制御できるので、マルチ言語プロジェクトでは特に威力を発揮します。組み込み系のC言語とデータ解析のPythonが混在するプロジェクトでも、それぞれに適したコードスタイルをAIが提案してくれるようになります。
ファイル構成例:
project/
├── instruction.md # 全体の指示
├── c-instruction.md # C言語用
├── python-instruction.md # Python用
└── markdown-instruction.md # Markdown用
言語ごとのベストプラクティスをAIに叩き込めるので、品質の底上げに繋がります。
テンプレートファイル(例、報告.md)
よく使う文書の型をテンプレートファイルとして保存しておくと、AIとの作業が格段に楽になります。私は作業報告用、進捗報告用、設計書用など、目的別にMarkdownテンプレートを用意しています。例えば報告.mdには「## 目的」「## 実施内容」「## 結果」「## 考察」「## 次回の予定」といった見出しを予め書いておき、AIに「このテンプレートに沿って今日の作業をまとめて」と指示するだけで、体裁の整った報告書が出来上がります。テンプレートがあることで、AIも何を書くべきか理解しやすくなり、出力の質が上がります。Mermaid記法を使った図表のテンプレートも用意しておくと、クラス図やシーケンス図も素早く作成できます。
# 作業報告書テンプレート
## 作業日時
YYYY/MM/DD HH:MM
## 目的
[ここに作業の目的を記載]
## 実施内容
### 作業環境
-
### 作業手順
1.
2.
## 結果
### 成果物
[作成したもの、変更内容など]
### 観測事項
-
## 考察
[結果の分析と解釈]
## 結論
[作業から得られた知見]
## 次回の予定
- [ ]
これをベースにAIに「今日のプログラム改修作業の報告書を作成して」って頼むだけで、ちゃんとした形式の報告書が出来上がります。
スラッシュコマンド
GitHub Copilot Chatでは/explain、/fix、/testsなどのスラッシュコマンドが使えます。これらは定型作業を一発で指示できる便利機能です。/explainは選択したコードの解説を生成、/fixはエラーや警告の修正案を提示、/testsは単体テストコードを生成します。他にも/docでドキュメントコメント生成、/simplifyでコードの簡略化など、様々なコマンドがあります。私は特に/testsを多用していて、関数を書いた直後にテストコードを自動生成させることで、品質担保とデバッグ効率化を両立しています。スラッシュコマンドを使いこなすことで、AIとの対話がより効率的かつ予測可能になります。公式ドキュメントで全コマンドを確認できるので、一度目を通すことをお勧めします。
最近はPrompt Fileという、自作するスラッシュコマンドもPreviewで出ているので、発展先が楽しみです。
よく使うコマンド一覧:
/explain- コード解説/fix- エラー修正/tests- テストコード生成/doc- ドキュメント生成/simplify- コード簡略化/optimize- パフォーマンス最適化
おすすめの家財道具(VSCode拡張)
VSCodeの拡張もあると、二人の作業が捗ります。私が日常的に使っている拡張機能をご紹介します。
GitHub Copilot Chat
GitHub Copilot Chatは、エディタ内でAIと対話できる拡張機能です。コードを選択してチャットで質問したり、ファイル全体の解説を求めたり、リファクタリング案を相談したりできます。サイドバーに常駐するチャットパネルから、プロジェクト全体に関する質問も可能です。この拡張を入れることで、ブラウザでChatGPTを開く必要がなくなり、開発フローが途切れません。私は「このコードのバグを見つけて」「このアルゴリズムをもっと効率的に」といった質問を日常的に投げかけています。インラインチャット機能を使えば、コードの特定行に対してピンポイントで質問や修正依頼ができるのも便利です。GitHub Copilot契約者は無料で使えるので、入れない理由がありません。
Markdown All in One
Markdown All in Oneは、Markdownファイルの編集を快適にする総合拡張機能です。キーボードショートカットで太字や斜体、リンク挿入ができたり、目次の自動生成、セクション番号の自動採番、リストの自動フォーマットなど、多機能です。特に目次生成機能は便利で、見出しを書いた後にコマンドパレットから「Create Table of Contents」を実行するだけで、リンク付き目次が完成します。私はGitHub Copilotで生成した長文のMarkdownドキュメントに、この拡張で目次を追加することが多いです。プレビュー機能も内蔵しているので、執筆しながらリアルタイムで仕上がりを確認できます。ドキュメント作成が多い人には必須の拡張です。
Markdown Preview Enhanced
Markdown Preview Enhancedは、標準のMarkdownプレビューより高機能なプレビュー拡張です。数式表示(KaTeX, MathJax対応)、Mermaid図表のレンダリング、PlantUML対応、PDF/HTML/画像へのエクスポートなど、技術文書作成に必要な機能が揃っています。私はMermaid記法でフローチャートやクラス図を書くことが多いので、リアルタイムで図が見られるこの拡張は手放せません。数式を含むレポートもこれで書けば、LaTeXを使わずともきれいな文書が作れます。GitHub Copilotで生成したMarkdownにMermaid図が含まれている場合、この拡張でプレビューすれば即座に視覚的に確認できます。エクスポート機能も優秀で、完成した文書をPDFで提出する際にも重宝します。
html Preview
HTML Preview(または類似の拡張)は、HTMLファイルをVSCode内でプレビューできる拡張機能です。Webページを作成している時に、ブラウザを開かずにエディタ内で確認できるので、開発効率が上がります。私はGitHub Copilotで生成したHTMLやCSSを、この拡張で即座にチェックしています。簡単なランディングページやドキュメントページを作る際、編集とプレビューを同時に見られるのは非常に便利です。自動リロード機能があるものを選べば、ファイルを保存するたびにプレビューが更新されるので、リアルタイムな開発体験が得られます。フロントエンド開発をする人は入れておいて損はありません。
Mermaid Preview
Mermaid Previewは、Mermaid記法の図表をプレビューするための拡張機能です。Markdown Preview Enhancedでもプレビューできますが、.mmdファイル(Mermaid専用ファイル)を編集する場合や、より細かい調整をする場合にはこちらが便利です。私はシステム設計の際、GitHub Copilotに「このクラスの関係を示すMermaidクラス図を作成して」と指示し、生成された図をこの拡張でプレビューしながら調整しています。図のシンタックスエラーもハイライトされるので、記法ミスにすぐ気づけます。複雑なシーケンス図やガントチャートを書く際には、リアルタイムプレビューがあるとないとでは作業効率が段違いです。技術文書に図表を多用する人にはおすすめです。
あなたとの未来予想図(AIに溢れた世界で君たちはどう生きるか)
さて、ここまで私が書いてきたことはAIとの向き合い方の一例です。これからの時代はAIとの共生時代を避けては通れないでしょう。そんな時に人間は何をするか、人間である意味は何か、は永遠の課題として残るのは明らかです。ならばこそ、AIと一緒とより積極的に一緒に協働することで、人間の個性や強みが分かってくるのかと思います。
人間は何をすればいいか?自分はどんなスキルを磨いて、AI社会の中で生きていけばよいでしょうか?
私なりの答えは「あなたが何を感じて、何をしたいか、どんなことが嬉しいかを更新し、言語化する習慣と意欲を大事にすること」です。
今後は画像も動画も音声さえも、生成AIが作ったものか否かますます見分けはつかなくなります。その中で信じられるものがあるとすれば、自分自身が感じた想いや湧き上がってくる何かです。それだけは、誰にも阻害されないものですし、最強のオリジナリティです。
これがしたい、あれがしたい、こんなことをして喜んでもらいたい。
そんな原動力を絶やさずに燃やし続ける事が大事かなと思います。
頑張っていきましょう。
最後に、気づいた人もいるかもしれませんがネタ晴らしです。
このブログ記事はGitHub Copilotと共に、箇条書きとレビュープロセスを通して作成した記事です。基本はMarkdownで書いてもらいながら、最後にはてなブログ用にhtmlへ変換しています。私が書いた比率は、20-30%ほどです。
私の文章にしては真面目過ぎるな…と思ったあなた、素晴らしい。
新しいものは取り込み、まずは遊んでみるのは大事なことです。
皆さんも、是非、GitHub Copilotとの共存生活に取り組んでみてください。
明日の記事はTanaportさんの「魔改造サークル標準機(無限設計編)」です。
追い込んでいく姿はいつも応援しています。
どんなこと書くのか、お楽しみに。
それではまた。