{"meta":{"title":"GitHub Copilotを使用してタスクに取り組むためのベスト プラクティス","intro":"Copilot cloud agentから最適な結果を得る方法について説明します。","product":"GitHub Copilot","breadcrumbs":[{"href":"/ja/copilot","title":"GitHub Copilot"},{"href":"/ja/copilot/tutorials","title":"チュートリアル"},{"href":"/ja/copilot/tutorials/cloud-agent","title":"クラウド エージェント"},{"href":"/ja/copilot/tutorials/cloud-agent/get-the-best-results","title":"最良の結果を得る"}],"documentType":"article"},"body":"# GitHub Copilotを使用してタスクに取り組むためのベスト プラクティス\n\nCopilot cloud agentから最適な結果を得る方法について説明します。\n\n> \\[!NOTE]\n> Copilot cloud agentの概要については、[クラウド エージェントGitHub Copilotについて](/ja/copilot/concepts/agents/cloud-agent/about-cloud-agent) を参照してください。\n\n## 課題の範囲が適切であることを確認する\n\nGitHub Copilot は、明確で適切なスコープのタスクが割り当てられた場合に、より優れた結果を提供します。 理想的なタスクには以下が含まれます。\n\n* 解決すべき問題または必要な作業の明確な説明。\n* 適切なソリューションのイメージに関する完全な受け入れ基準 (単体テストが必要かなど)。\n* 変更すべきファイルに関する指示。\n\n> \\[!TIP]\n> Copilot cloud agent には、セマンティック コード検索を含むコードベースを検索する機能があります。これは、テキストの正確な一致だけでなく、意味に基づいて関連するコードを見つけるのに役立ちます。 タスクで正確なファイル パスを指定しない場合でも、エージェントは多くの場合、適切なコードを単独で検出できます。\n\n問題を割り当ててタスクを Copilot に渡す場合は、 Copilot に割り当てる問題をプロンプトとして考えると便利です。 問題の説明が AI プロンプトとして機能する可能性が高いかどうかを検討し、 Copilot が必要なコード変更を行えるようにします。\n\n## 与えるタスクの適切な種類の選択 Copilot\n\nCopilotを使用すると、作業に最適なタスクの種類を把握できます。 最初に、 Copilot 簡単なタスクを提供して、クラウド エージェントとしての動作を確認することをお勧めします。 たとえば、バグの修正、ユーザー インターフェイス機能の変更、テスト カバレッジの向上、ドキュメントの更新、アクセシビリティの向上、技術的負債への対処を Copilot に依頼することから始めることができます。\n\nCopilotに割り当てるのではなく、自分で作業することを選択できる問題は次のとおりです。\n\n* **複雑でスコープが広いタスク**\n  * クロスリポジトリの知識とテストが必要となる、広範なスコープのコンテキストに富んだリファクタリングの問題\n  * 依存関係とレガシ コードを理解する必要がある複雑な issue\n  * ドメインに関する深い知識を必要とするタスク\n  * 重要なビジネス ロジックを含むタスク\n  * 設計の一貫性が必要なコードベースに対する大きな変更\n\n* **機密性が高く重要なタスク**\n  * 生産に関わる重大な問題\n  * セキュリティ、個人を特定できる情報、認証に影響を及ぼすタスク\n  * インシデント対応\n\n* **あいまいなタスク**\n  * 明確な定義がないタスク: あいまいな要件を含むタスク、明確な答えのないタスク、解決策を見つけるために不確実な状態で作業を行う必要があるタスク\n\n* **学習のためのタスク**\n  * 開発者がより深い理解を得るために学習するためのタスク\n\n## プルリクエストを開く前に、調査、計画、繰り返し検討を行うこと\n\nCopilotに pull request をすぐに開くように依頼するのではなく、Copilot cloud agentを使用してリポジトリを調査し、実装計画を作成し、最初にブランチで反復的なコード変更を行うことができます。 これにより、pull request を開く前に、差分を確認して作業を改良することができます。\n\nこのワークフローは、次の場合に便利です。\n\n* 変更を加える前にコードベースがどのように機能するかを理解します。\n* コードを記述する前に、 Copilot のアプローチに同意します。\n* レビュー用の pull request を開く前に、変更を確認して反復処理します。\n\n「[Copilot cloud agentを使用してコードの変更を調査し、計画し、反復します。](/ja/copilot/how-tos/copilot-on-github/use-copilot-agents/research-plan-iterate)」を参照してください。\n\n## コメントを使用して pull request を繰り返す\n\npull request での Copilot の操作は、人間の開発者と一緒に作業するのと同じです。プル要求がマージされる前に、さらに作業が必要になるのが一般的です。 プル要求をマージ可能な状態に取得するプロセスは、pull request が Copilot によって作成されたときと、人間が作成したときとまったく同じです。\n\nさらに、あなたは次のことができます：\n\n* pull request のコメントに`@copilot`を記載し、正しくない点や改善の余地がある点について説明してください。Copilotは、その内容をプルリクエストのブランチに直接コミットします。\n* pull request でのマージの競合を解決するように Copilot に依頼します。 「[GitHubでのクラウド エージェントCopilot使用](/ja/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github#resolving-merge-conflicts)」を参照してください。\n* 機能ブランチで自分で作業し、変更をプル要求にプッシュします。\n\n書き込みアクセスメンションを持つユーザーがコメントに `@copilot` すると、 Copilot は必要な変更を開始し、完了すると pull request を更新します。\nCopilotは送信されるとすぐにコメントの表示を開始するため、pull request で複数のコメントを作成する可能性がある場合は、\\[**1 つの**コメントの追加] をクリックするのではなく、\\[レビューの**開始**] をクリックしてバッチ処理することをお勧めします。 その後、すべてのコメントを一度に送信し、個々のコメントを個別に操作するのではなく、 Copilot をトリガーして、レビュー全体で作業することができます。\n\n> \\[!NOTE]\n> Copilot リポジトリへの書き込みアクセス権を持つユーザーからのコメントにのみ応答します。\n\nCopilotが pull request に変更を加えると、タイトルと本文が最新の状態に保たれ、現在の変更が反映されます。\n\n## リポジトリにカスタム指示を追加する\n\nリポジトリにカスタム命令を追加することで、プロジェクトを理解する方法と、その変更をビルド、テスト、検証する方法に関する Copilot をガイドできます。\n\nCopilot独自の開発環境で変更をビルド、テスト、検証できる場合は、迅速にマージできる適切なプル要求が生成される可能性が高くなります。\n\nCopilot cloud agent では、さまざまな種類のカスタム命令ファイルがサポートされています。\n\n* `/.github/copilot-instructions.md`\n* `/.github/instructions/**/*.instructions.md`\n* `**/AGENTS.md`\n* `/CLAUDE.md`\n* `/GEMINI.md`\n\n詳細については、「[GitHub Copilot用のリポジトリカスタム命令の追加](/ja/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-repository-instructions?tool=webui)」を参照してください。\n\n### リポジトリ全体のガイドライン\n\nリポジトリ内の Copilot に割り当てられているすべてのタスクに適用される手順を追加するには、リポジトリのルートに `.github/copilot-instructions.md` ファイルを作成します。 このファイルには、プロジェクトのビルドとテスト方法、および従う必要があるコーディング標準や規則など、プロジェクトに関する情報 Copilot 含める必要があります。 手順は、 Copilot Chat と Copilot code reviewにも適用されることに注意してください。\n\n指定されたリポジトリでプル要求を初めて作成するように Copilot に依頼すると、Copilot はカスタム命令を自動生成するためのリンクが含まれたコメントを残します。 また、推奨されるプロンプトを使用して、いつでもカスタム命令を生成するように Copilot に依頼することもできます。 「[GitHub Copilot用のリポジトリカスタム命令の追加](/ja/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-repository-instructions?tool=webui#asking-copilot-cloud-agent-to-generate-a-copilot-instructionsmd-file)」を参照してください。\n\nさらに、独自のカスタム指示をいつでも記述することもできます。 有効な `copilot-instructions.md` ファイルの例を次に示します。\n\n```markdown\nThis is a Go based repository with a Ruby client for certain API endpoints. It is primarily responsible for ingesting metered usage for GitHub and recording that usage. Please follow these guidelines when contributing:\n\n## Code Standards\n\n### Required Before Each Commit\n- Run `make fmt` before committing any changes to ensure proper code formatting\n- This will run gofmt on all Go files to maintain consistent style\n\n### Development Flow\n- Build: `make build`\n- Test: `make test`\n- Full CI check: `make ci` (includes build, fmt, lint, test)\n\n## Repository Structure\n- `cmd/`: Main service entry points and executables\n- `internal/`: Logic related to interactions with other GitHub services\n- `lib/`: Core Go packages for billing logic\n- `admin/`: Admin interface components\n- `config/`: Configuration files and templates\n- `docs/`: Documentation\n- `proto/`: Protocol buffer definitions. Run `make proto` after making updates here.\n- `ruby/`: Ruby implementation components. Updates to this folder should include incrementing this version file using semantic versioning: `ruby/lib/billing-platform/version.rb`\n- `testing/`: Test helpers and fixtures\n\n## Key Guidelines\n1. Follow Go best practices and idiomatic patterns\n2. Maintain existing code structure and organization\n3. Use dependency injection patterns where appropriate\n4. Write unit tests for new functionality. Use table-driven unit tests when possible.\n5. Document public APIs and complex logic. Suggest changes to the `docs/` folder when appropriate\n```\n\n### パス固有の指示\n\n単体テストや React コンポーネントなど、 Copilot が動作する特定の種類のファイルに適用される手順を追加するには、リポジトリに 1 つ以上の `.github/instructions/**/*.instructions.md` ファイルを作成します。\nこれらのファイルには、ファイルの種類に関する情報 (ビルドとテストの方法など) と、従う必要があるコーディング標準や規則 Copilot 含めます。\n\n指示ファイルの front matter で glob パターンを使って、それを適用する必要があるファイルの種類を指定できます。 たとえば、Playwright テストの命令を作成するには、次の内容を含む `.github/instructions/playwright-tests.instructions.md` という命令ファイルを作成できます。\n\n```markdown\n---\napplyTo: \"**/tests/*.spec.ts\"\n---\n\n## Playwright test requirements\n\nWhen writing Playwright tests, please follow these guidelines to ensure consistency and maintainability:\n\n1. **Use stable locators** - Prefer `getByRole()`, `getByText()`, and `getByTestId()` over CSS selectors or XPath\n1. **Write isolated tests** - Each test should be independent and not rely on other tests' state\n1. **Follow naming conventions** - Use descriptive test names and `*.spec.ts` file naming\n1. **Implement proper assertions** - Use Playwright's `expect()` with specific matchers like `toHaveText()`, `toBeVisible()`\n1. **Leverage auto-wait** - Avoid manual `setTimeout()` and rely on Playwright's built-in waiting mechanisms\n1. **Configure cross-browser testing** - Test across Chromium, Firefox, and WebKit browsers\n1. **Use Page Object Model** - Organize selectors and actions into reusable page classes for maintainability\n1. **Handle dynamic content** - Properly wait for elements to load and handle loading states\n1. **Set up proper test data** - Use beforeEach/afterEach hooks for test setup and cleanup\n1. **Configure CI/CD integration** - Set up headless mode, screenshots on failure, and parallel execution\n```\n\n## 組織全体のカスタム手順\n\nCopilot cloud agent は、組織のカスタム指示をその作業の一部として活用します。\nCopilot cloud agent 最初に、リポジトリ全体のカスタム命令に優先順位を付けます。 組織のカスタム手順を構成する方法の詳細については、 [GitHub Copilot の組織のカスタム手順を追加する](/ja/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-organization-instructions) を参照してください。\n\n## モデル コンテキスト プロトコル (MCP) を使用する\n\nMCP を使用して、 Copilot cloud agent の機能を拡張できます。 これにより、 Copilot cloud agent はローカルおよびリモートの MCP サーバーによって提供されるツールを使用できます。\nGitHub MCP サーバーと [Playwright MCP サーバー](https://github.com/microsoft/playwright-mcp)は、既定で有効になっています。 詳細については、「[リポジトリの MCP サーバーを構成する](/ja/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers)」を参照してください。\n\n## custom agents の作成\n\nカスタム手順はリポジトリ全体の Copilotの一般的な動作をガイドするのに役立ちますが、 custom agents 集中した専門知識とカスタマイズされたツール構成を使用して、完全に特殊なエージェントを作成できます。 これらのエージェントは、ドメインの専門知識と一貫した動作が重要な特定の繰り返しのワークフロー用に設計されています。\nCustom agents は、 agent profilesと呼ばれる Markdown ファイルとして定義されます。\n\n作成できる custom agents の例をいくつか次に示します。\n\n* **テスト スペシャリスト**: 特定のテスト フレームワークで構成され、テスト カバレッジ、テスト品質、テストのベスト プラクティスに重点を置いたエージェント。 読み取り、検索、編集のツールに制限され、運用コードに意図しない変更が加えられるのを防ぎ、包括的なテスト カバレッジを確保できます。\n* **ドキュメントの専門家**: ドキュメントの標準、スタイル ガイド、およびコードを分析して正確な API ドキュメントとユーザー ガイドを生成する機能に関する深い知識を持つ、プロジェクト ドキュメントの作成と保守に特化したエージェント。\n* **Python スペシャリスト**: Python の規則、Django や Flask などの一般的なフレームワークを理解し、PEP 標準に従う言語固有のエージェント。 Python ツール、仮想環境、pytest などのテスト フレームワークに関する専門知識が必要です。\n\n既定では、 custom agents リポジトリで構成されている MCP サーバー ツールを継承しますが、特定のツールにのみアクセスできるように custom agents を構成することもできます。\n\ncustom agentsは、問題の割り当て時やタスクのプロンプト時など、Copilot cloud agentを使用する任意の場所で使用できます。\n\ncustom agentsの作成と構成の詳細については、[Copilot cloud agent用のカスタム エージェントの作成](/ja/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/create-custom-agents) を参照してください。\n\n## GitHub Copilotの環境での依存関係の事前インストール\n\nタスクに取り組んでいる間、 Copilot は独自のエフェメラル開発環境にアクセスでき、 GitHub Actionsを利用して、コードの探索、変更、自動テストやリンターの実行などを行うことができます。\n\nCopilot独自の開発環境で変更をビルド、テスト、検証できる場合は、迅速にマージできる適切なプル要求が生成される可能性が高くなります。\n\nそれを行うためには、プロジェクトの依存関係が必要になります。\nCopilot では、試用とエラーのプロセスを介してこれらの依存関係自体を検出してインストールできますが、大きな言語モデル (LLM) の非決定的な性質を考えると、低速で信頼性が低くなる可能性があります。\n\nエージェントが作業を開始する前にこれらの依存関係を事前にインストールするために `copilot-setup-steps.yml` ファイルを構成することで、効率的な作業を実施できます。 詳細については、「[開発環境を構成する](/ja/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/customize-the-agent-environment#preinstalling-tools-or-dependencies-in-copilots-environment)」を参照してください。"}