MS_GitHubCopilotCodingAgent - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

GitHub Copilot Coding Agent

抂芁

コヌディング・゚ヌゞェント・ツヌル

  • Claude Code をはじめずする各プロダクトの台頭に匷い危機感を持っお
    急ピッチで開発されたか぀珟圚も進化しおいる
  • 名前の通り、埓来のクラス・メ゜ッド生成、スニペット生成、オヌトコンプリヌトから、
    開発プロゞェクトを代行できるコヌディング・゚ヌゞェントずなった。
  • このブレヌクスルヌは「埓来の゚ヌゞェントアヌキテクチャの成熟」ず
    「掚論モデルReasoning Modelsの登堎」が完璧に噛み合ったからず蚀われおいる。

詳现

䜿い方に぀いおは参考を参照。

実装可胜な機胜

Claude Codeオリゞナル・コンテンツむキナリLLMコヌディング・゚ヌゞェント
を参照ず同じ。

゚ヌゞェント

  • my-reviewer.agent.md などずしお拡匵子.agent.md以䞋のように定矩する。
    • ヘッダ郚は「YAML フロントマタヌメタデヌタ」、
      ボディ郚は「Markdown 圢匏の指瀺」
    • ヘッダ郚には、name、tools、model などを任意で蚭定できる
      name、description は必須項目。
---
name: my-reviewer
description: バグやセキュリティ問題に特化したコヌドレビュアヌ
---

# Code Reviewer

あなたは、バグやセキュリティ問題の怜出に特化したコヌドレビュアヌです。

コヌドレビュヌ時には、必ず以䞋を確認しおください

- SQLむンゞェクションの脆匱性
- ゚ラヌハンドリングの䞍足
- ハヌドコヌドされたシヌクレット情報
  • ファむルの眮き堎は以䞋の 2 箇所

    • リポゞトリ.github/agents/
    • 個人蚭定~/.copilot/agents/
  • ゚ヌゞェントは、以䞋のように呌出すこずが出来る。

    • Slash コマンド颚に明瀺的に/゚ヌゞェント名。
    • Prompt 䞭で、Slash コマンド颚に明瀺的に。
    • Prompt ず Description の察応で暗黙的に。
  • ポむント

    • 専門性の高い゚ヌゞェントを定矩し、
      䌚話履歎に残しお耇数゚ヌゞェント連携させる耇雑な問題を解決する。
    • なお、定矩が長すぎる30,000 文字制限に匕っかかる堎合、
      内容を絞るか、詳现は埌述のスキルで管理する。
  • 参考

補足サブ゚ヌゞェントを分ける効甚ず副䜜甚: 「専門性の高い
゚ヌゞェントを定矩する」こずの実務䞊の意味を補っおおく。

【分ける効甚】★
 ① 【コンテキストの隔離】
     レビュヌ甚゚ヌゞェントは
     レビュヌに必芁な情報だけを読む
     → 本䜓の䌚話履歎が
       倧量のファむル内容で埋たらない ★
 ② 【圹割の固定】
     「あなたはレビュアヌです」ずいう
     匷い圹割付けが毎回効く
     → 指瀺のブレが枛る
 ③ 【ツヌルの制限】
     tools でファむル曞き蟌みを犁じれば
     「レビュヌの぀もりが勝手に盎された」を防げる ★

【副䜜甚】
 ① サブ゚ヌゞェントは【毎回れロから始たる】
     → 呌ぶたびに前提を再調査するコストがかかる
     → 本䜓で既に分かっおいるこずは
       プロンプトで枡しおやる方が速い
 ② 数を増やしすぎるず
     「どれが呌ばれたか分からない」状態になる
     → description を明確に曞き分ける ★

スキル

  • SKILL.md を以䞋のように定矩する。
    • ヘッダ郚は「YAML フロントマタヌメタデヌタ」、
      ボディ郚は「Markdown 圢匏の指瀺」
    • ヘッダ郚には、license、compatibility、metadata、allowed-tools などを
      任意で蚭定できるname、description は必須項目。
---
name: echo-skill
description: 入力されたテキストをそのたたナヌザヌに返したす。
---

# Echo Skill
このスキルは、入力されたテキストを受け取り、それをそのたた返したす。
  • SKILL.md ファむルの眮き堎は以䞋の 2 箇所

    • リポゞトリ.github/skills/スキル名ココでは echo など
    • 個人蚭定~/.copilot/skills/スキル名ココでは echo など
  • 耇雑なスキルには
    サンプルコヌドやスクリプトを甚意できる。

.github/skills/
└── my-skill/
    ├── SKILL.md           # 必須スキル定矩ず指瀺
    ├── examples/          # 任意参照甚サンプルコヌド
    │     └── sample.py
    └── scripts/           # 任意スキルで䜿甚するスクリプト
           └── validate.sh
  • 互換性Claude Code

    • 眮き堎を替えるだけ.github/.copilot → .claude
    • 発火しない堎合は description の調敎が必芁
    • allowed-tools フィヌルドは削陀Copilot では実隓的機胜
  • スキルは、以䞋のように呌出すこずが出来る。

    • Slash コマンド颚に明瀺的に/スキル名。
    • Prompt 䞭で、Slash コマンド颚に明瀺的に。
    • Prompt ず Description の察応で暗黙的に。
  • ポむント

    • 自動ロヌドスキル・ディレクトリに配眮するだけで、
      適切なタむミングで自動的にロヌドされる。
    • 暙準化オヌプン暙準に基づいおいるため、異なるツヌル間での移怍性が高く、
      ゚コシステムが発達し易い。
  • 参考

補足゚ヌゞェントずスキルの䜿い分け: 䞡者は䌌た圢匏
YAML フロントマタヌ + Markdownだが、圹割が違う。

゚ヌゞェント.agent.md スキルSKILL.md
䜕を定矩するか 人栌・圹割・䜿えるツヌル 手順・知識
実行の単䜍 独立したコンテキストで動く ★ 呌び出し元の文脈に読み蟌たれる ★
付属ファむル なし examples / scripts を持おる ★
䞻な甚途 レビュヌ、調査、蚭蚈 定型手順、芏玄、ツヌルの䜿い方
分量 30,000 文字制限あり ファむル分割で実質無制限 ★
【原文の指摘が的確な点】★
   「定矩が長すぎる堎合、詳现はスキルで管理する」
     → ゚ヌゞェント定矩は【圹割の宣蚀】に留め、
       具䜓的な手順は【スキルに倖出しする】
     → これが公匏に想定された䜿い分けである

【Progressive Disclosure段階的開瀺】★
   スキルの蚭蚈思想。
     ① たず description だけが読たれる軜い
     ② 関連しそうなら SKILL.md 本䜓が読たれる
     ③ 必芁なら examples / scripts を蟿る
   → 【コンテキストを浪費せずに
     倧量の知識を持たせられる】仕組み
   → だから description の曞き方が最重芁 ★
     「い぀䜿うか」が明確に曞かれおいないず発火しない
     原文の「発火しない堎合は description の調敎が必芁」
【移怍性に぀いお】★
   原文が「オヌプン暙準に基づいおいる」ず曞くずおり、
   スキルの圢匏は
     Claude Code / GitHub Copilot / その他
   でほが共通になり぀぀ある。
     → 【.claude/skills/ ↔ .github/skills/】を
       シンボリック リンクで共有する運甚も芋られる
     → ただし
       - 䜿えるツヌル名が違う
       - allowed-tools の解釈が違う原文の指摘どおり
       - 発火のしやすさが違う
       ため【完党な互換ではない】

レガシヌ察応

  • なお、GitHub Copilot同様、
    Visual Studio Code から、
    Visual Studio 20XXVisual Studio、
    その他、著名な IDE でもサポヌトされおいる。
  • 特に、Visual Studio 20XXVisual Studioの
    .NET Framework 開発は PJ ファむルの叀さなどもあり、
    winapp CLI でなくおも開発可胜か気になっおいたが、動きはしたが、
    • PJ ファむルの線集は、IDE にロックされおいる䞭で、
      スクリプトで無理やりやろうずしおバグっおいたケヌスがあった。
    • たた、VS の䞀郚のファむルは既定で BOM 付き UTF-8 である必芁があり、
      ゚ヌゞェントが远加した BOM 無し UTF-8 ファむルで文字化けが発生しお
      ゚ラヌになったりした。

移行メモ誀字: 移行元の「文字化が発生しお」を
「文字化けが発生しお」に修正した。

補足レガシヌ .NET 開発で゚ヌゞェントが躓く理由: 䜜者が遭遇した
2 ぀の問題は、いずれも兞型的なので䞀般化しおおく。

【① プロゞェクト ファむルの線集競合】★
   旧圢匏の .csproj / .vbproj は
     ・ファむルを 1 ぀ず぀ <Compile Include> で列挙する
     ・GUID / ProjectTypeGuids など
       意味の分かりにくい芁玠が倚い
     → ゚ヌゞェントがテキスト線集するず
       【敎合性を壊しやすい】
     → さらに VS が【開いおいる間ロックし、
       VS 偎の内容で䞊曞きする】ため、
       「盎したはずが戻る」珟象が起きる

   【察策】
     ・゚ヌゞェントに觊らせる前に
       【VS を閉じる】★
     ・可胜なら【SDK スタむルぞ倉換】しおから䜜業する
       ファむル列挙が䞍芁になり、線集点が激枛する
     ・AGENTS.md に
       「.csproj は手動で線集する」ず明蚘する ★

【② BOM 付き UTF-8 の芁求】★
   Visual Studio が生成する日本語入りファむルは
   【BOM 付き UTF-8】が既定
     → BOM が無いず
       C# コンパむラが【Shift_JIS ず誀認】しお
       日本語コメント・文字列リテラルが化ける
       特に .NET Framework 䞖代の csc
     → ゚ヌゞェント䞀般的なツヌルは
       【BOM 無しで曞く】のが普通

   【察策】
     ・.gitattributes / .editorconfig で
       方針を明瀺する
         [*.cs]
         charset = utf-8-bom        # ★
     ・ビルド前に BOM を付䞎するスクリプトを甚意する
     ・.csproj に
       <CodePage>65001</CodePage> を指定しお
       BOM 無しでも UTF-8 ず解釈させる回避策
     ・AGENTS.md に
       「新芏 .cs は BOM 付き UTF-8 で保存する」ず曞く ★
【レガシヌ開発で゚ヌゞェントを䜿う際の䞀般則】★
 ・【AGENTS.md に環境固有の制玄を曞く】
     文字コヌド、改行コヌド、
     觊っおはいけないファむル、ビルド手順
 ・【ビルドを回せるようにしおおく】
     msbuild を゚ヌゞェントから叩けるず
     自己修正のルヌプが回る
 ・【差分を小さく保぀】
     旧圢匏プロゞェクトは
     倧きな倉曎のレビュヌが難しい
  • 怜蚌
    • みたいなhttps://github.com/codecypher/NorthwindForms
    • Northwind を甚いお生成した仕様
      生成AIを掻甚した蚭蚈曞のブレヌクダりンを甚いお、
      GitHub Copilot Coding Agent で実装を行った。
    • ココでの方匏は、プロ甚フェヌズ毎の怜収 ドキュメント・フォワヌド
      いずれもオリゞナル・コンテンツむキナリLLMコヌディング・゚ヌゞェント
      の該圓節ず蚀える。
  • GHC、Visual Studio 2026Visual Studio、
    .NET Framework 4.8.2.NET Framework、
    Windows Forms
  • なお、AGENTS.md ず SPEC.md から、...\.copilot\plans\plan*.md を生成させ、
    ゜レを手修正した PLAN.md を䜜成しお、実行しおいる。
  • GHC、Visual Studio 2026Visual Studio、
    .NET Framework 4.8.2.NET Framework、
    ASP.NET Web Forms
  • なお、AGENTS.md ず SPEC.md から、...\.copilot\plans\plan*.md を生成させ、
    ゜レを手修正した PLAN.md を䜜成しお、実行しおいる。

補足「蚈画を生成させ、手修正しおから実行する」の意矩: この進め方は
゚ヌゞェント掻甚の芁諊なので、明瀺しおおく。

【なぜ䞀発で実装させないのか】★
   ・゚ヌゞェントは【途䞭で方針を倉えない】
     → 最初の方針が間違っおいるず
       倧量の間違ったコヌドが生成される
     → レビュヌの負荷が爆発する

   ・【蚈画PLAN.mdを先に出させる】ず
     → 実装前に方針を確認・修正できる ★
     → 修正コストが【文曞の数行】で枈む
     → 実装䞭はその蚈画に沿っお進むので
       脱線しにくい

【ファむルの圹割分担本事䟋の構成】★
   AGENTS.md  
 【恒久的な芏玄】
                 文字コヌド、呜名、犁止事項、ビルド手順
   SPEC.md    
 【䜕を䜜るか】芁件・蚭蚈
   PLAN.md    
 【どの順で䜜るか】䜜業分解★
                 → 人がレビュヌ・修正する察象

   → 「蚭蚈曞 → 蚈画 → 実装」ずいう
     通垞の開発工皋を、そのたた゚ヌゞェントに写しおいる
   → 原文の【ドキュメント・フォワヌド】ずいう
     呌び方はこの構造を指しおいる ★

Claude Codeでもむケるらしい。

  • 根拠

    • GHC でも専甚のツヌルやスキルは無しの状態で動いたのだから。
    • Claude Code 自身が「オレ、WinForms 実装できるで。」っお蚀っおたコピペ取り忘れ
    • 発生したのは「BOM 付き・BOM 無し系の問題」皋床だった。
  • 参考

WinUI agent pluginが出おいるらしい。

# Add the WinUI plugin to GitHub Copilot CLI
/plugin install winui@awesome-copilot
# Run the winui-setup skill to install all prerequisites
/winui:winui-setup
あずはカスタム゚ヌゞェント `winui-dev` を遞んで、\
「WinUI 3 で〇〇ずいうアプリを䜜っおください」ず入力。
  • Claude Code
claude plugin marketplace add microsoft/win-dev-skills
claude plugin install winui@win-dev-skills
むンストヌル埌、Claude Code のプロンプト先頭に `@winui-dev` を付䞎し\
`@winui-dev` ゚ヌゞェントを䜿甚する。

補足プラグむンスキル゚ヌゞェントの配垃圢匏: 䞊蚘の
/plugin install や claude plugin install が䜕をしおいるかを補う。

【プラグむンの䞭身】★
   プラグむン 
     【スキル】【カスタム ゚ヌゞェント】
     【スラッシュ コマンド】【MCP サヌバ定矩】
     をたずめお配垃する仕組み

   → 手で .github/skills/ に眮いおいたものを
     【マヌケットプレヌス経由で配れる】ようにしたもの
   → 曎新も plugin update で远随できる

【WinUI agent plugin が提䟛するもの】
   ・winui-setup    
 前提Windows App SDK、
                      ワヌクロヌドの導入を代行するスキル
   ・winui-dev      
 WinUI 3 に特化した゚ヌゞェント
   ・XAML / WinUI の【最新 API 知識】★
     → LLM の孊習デヌタは WinUI 3 に぀いお薄く、
       叀い UWP の曞き方を出しがち
     → プラグむンが正しい曞き方を泚入する
       これが「ぐっず楜になった」の䞭身
【原文の「WinUI 3 の評刀はカナリ悪い」に぀いお】
   この評䟡には根拠がある。
     ・WPF からの移行パスが甚意されおいない
     ・機胜欠萜が長く残った
       印刷、䞀郚のコントロヌル、アクセシビリティ
     ・パッケヌゞ化MSIXたわりが煩雑
     ・Microsoft 自身が
       WinForms/WPF/UWP/WinUI ず
       【方針を倉え続けた】こずぞの䞍信 ★

   → 「゚ヌゞェントが楜にしおくれる」こずず
     「基盀ずしお遞ぶべきか」は別問題であり、
     䜜者の慎重な姿勢は劥圓である

参考

開発基盀郚䌚 Wiki

Master Vibe Coding with AI Coding AgentsClaude Code...

オリゞナル・コンテンツむキナリLLMコヌディング・゚ヌゞェント


Tags: 移行, .NET開発, 構成管理ツヌル, CI, BI/AI

⚠ **GitHub.com Fallback** ⚠