10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IssueやPRをAIを使ってなるべくラクしながら必要な情報も満載にしたい

Last updated at Posted at 2025-12-21

初めまして、株式会社うるるの眞島と申します。
うるる (ULURU) Advent Calendar の17日目の記事となります。

はじめに

GitHub Copilotのカスタムインストラクション機能とプロンプトテンプレートを活用して、IssueやPRに必要な情報を記載するために、私自身が使っている方法をご紹介したいと思います。

IssueやPRは見る人(レビュアー)のために充実させた方が良いとわかっていても、毎回手を抜かずに書くのは現実的にはなかなか厳しいですよね。

ちょっとした対応だと、コメント書いている時間の方がコード修正より長くなってしまったり、テンプレートで書くべき内容が指示されていても、「まあこれでいいか」となってしまうことも。

コーディングは最近AIにお任せすることも増えてきていますし、同じようにIssueやPRの作成も、AIに対応してもらったら楽できるかも、と考えて導入してみたら、想像よりだいぶ楽できて、IssueやPRの情報も充実させることができました。

「Issue作成めんどくさい」「PRに何書けばいいかわからない」…そんな悩みを少しだけ解決することができるかもしれません。

前提条件

この記事で紹介する手順は、以下が実行可能な環境を前提としています。

  • Visual Studio Code
  • GitHub Copilot ChatのAgentモード
  • GitHub MCPサーバー

GitHub MCPサーバーの詳細はこちら:

課題

  • ❌ Issueを毎回きっちり埋めるのは結構面倒くさい
  • ❌ PRの説明が不足気味で、レビュアーが実装内容や意図を理解できない

たとえテンプレートが用意されていたとしても、IssueとPRの記載内容はエンジニアのスキルや経験、その時々の忙しさにも依存してしまいがち。

解決策の全体像

これらの課題を解決するために、以下の3つの仕組みを導入しました。

  1. 専用インストラクション - プロジェクトの知識をCopilotに教える
  2. Issue/PRテンプレート - 必要な情報を構造化
  3. プロンプトテンプレート - 作業フローを自動化

課題1: Issueを毎回埋めるのが面倒

問題点

Issueのテンプレートがあっても、必要な情報を手作業で記載するのは結構な時間がかかります。そして大事だとわかっていても正直、面倒くさい作業と感じていました。

解決策

  • Github MCPを使ってIssueを直接AIが作成できるようにした
  • 適当な内容でIssue作成することを防ぐためテンプレートを作成、参照するようにした

.github/prompts/ 以下にIssue作成専用のインストラクションを作成し、Issue作成フローを自動化しています。

設定内容(サンプル)

# GitHub操作用設定
Issue作成時に使用するテンプレートと対象リポジトリの情報を以下に示します。
ユーザーへの質問は1つ1つ選択肢形式で行い、ユーザーが選びやすいようにしてください。

## 作業フロー
- **ユーザに修正を行うブランチを確認し**、対象ブランチに切り替えてください。
- 切り替えたブランチを最新の状態にしてください
- Issueのプロジェクト名、カテゴリ、概要の3つをユーザーに確認し、それを元にIssueをテンプレートを参照して作成してください
 - タイトルのタスク名は概要から要約したものを使用してください
 - 不具合(Bug)の場合は「不具合No」をユーザに確認し、タイトルのカテゴリを【不具合No.ユーザが入力したNo】にしてください
- 作成したIssue番号を接頭辞として付与したブランチを新しく作成し、pushしてください。
- ブランチ作成後、DraftのPRをテンプレートを参照して作成してください
- PR先は 手順2で最新化したブランチです
- upstream から origin に向けて PR をユーザに確認してから作成してください
- PRタイトルは Issueタイトルと同じにしてください
- PR説明には Issue のリンクを貼ってください
- Issueにも PR のリンクを貼ってください

## Issueテンプレート参照先
[ISSUE_TEMPLATE.md](../ISSUE_TEMPLATE.md)

## Githubデフォルト設定(MCPが参照する)
- owner: xxxxxx
- repo: xxxxxxxxx
- assignees: ["あなたのユーザID"]
- type: 利用可能なIssueタイプ
- pullするリモート: origin
- push先リモート: upstream

Issueのテンプレートは別ファイルをリンクしています。
テンプレートはMD形式で必要な情報を書けば問題なしです。

使い方

Issueを作成するときにGitHub Copilot Chatで以下のように呼び出すだけ

1. `/` を入力すると、`.github/prompts/` 配下のファイル一覧が表示される
2. 作成したIssue作成用のプロンプトファイル を選択
3. 「新しいIssueを作成したい」と入力

Copilotが対話形式で必要な情報を聞いてくれて、Issue作成からブランチ作成、Draft PR作成まで自動で行ってくれます。間違えてしまうことも当然あるので、一応AI操作中はリアルタイムでチェックしておくのが良さそうです。

効果

  • 🥳 (あんまり)面倒くさくない!
  • ⏱️ Issue作成やDraftPR作成時間の短縮!
  • ✅ テンプレートの記載漏れがなくなり、情報も充実!
  • 🔗 Issue-PR-ブランチの紐付けが自動化(DraftPR作成し忘れも防止)!

課題2: PRの説明不足でレビュアーが困る

問題点

PRを作る時、以下のような状況になりがち(と個人的には思っています)。

  • PRテンプレートがただの定型文になっていて機能していない
  • レビュアーが背景を理解できず、結局対面レビュー(会話)をする

解決策

  1. 対応内容をAIに理解させる
  2. 対応内容を理解したAIにIssue、PRを作成・更新させる
    (適当な内容でPR作成することを防ぐためテンプレートを参照させる)

Issue作成やコーディングをAIに実施させている場合、1番目は不要ですね。ご自身で対応した場合は、修正内容(コミットした)内容やIssue内容をAIに読み込ませてください。

次に**PULL_REQUEST_TEMPLATE.md** を作成し、以下のような構造にします。

## ストーリー
関連Issueのリンク: #XXX

## WHAT(何を開発したか)
このPRで実現する機能や修正内容を簡潔に

## HOW(どのように実現したか)
実装方法の概要:
- 使用した技術やライブラリ
- 主要な変更ファイルとその役割
- 処理フロー

## WHY(なぜその設計を選択したか)
設計判断の理由:
- 他の選択肢と比較した結果
- トレードオフの考慮
- 将来の拡張性への配慮

PR作成・更新用の新しいカスタムインストラクションを作成します
(参考名:create-pr.prompt.md)

# GitHub操作用設定
ユーザーへの質問は1つ1つ選択肢形式で行い、ユーザーが選びやすいようにしてください。

## PR作成テンプレート
タイトル: 【プロジェクト名】【カテゴリ】タスク名
本文: [テンプレート](../PULL_REQUEST_TEMPLATE.md) を参照してください。

## PR作成・更新時のルール
- 作成する前にIssueに紐づくPRが既に存在しないか確認してください
 - PRが存在する場合
  - 新規作成ではなく既存のPRを更新してください
  - 既存のPRの記載内容を確認し、必要に応じて修正を加えてください
 - PRが存在しない場合
  - PR先は、修正を行ったブランチの最新化を行ったブランチです
  - upstream から origin に向けて PR をユーザに確認してから作成してください
  - PRタイトルは Issueタイトルと同じにしてください
  - PR説明には Issue のリンクを貼ってください
  - Issueにも PR のリンクを貼ってください

## Githubデフォルト設定(MCPが参照する)
- owner: xxxxxx
- repo: xxxxxxxxx
- assignees: ["あなたのユーザID"]
- type: 利用可能なIssueタイプ
- pullするリモート: origin
- push先リモート: upstream

使い方

Chatで下記のように依頼するだけです!

/create-pr.prompt.md
今回の修正内容をレビューが理解できるように詳細に説明するようにしてください

効果

  • 🥳 (そこまで)面倒くさくない
  • 📝 PRの説明が構造化され、読みやすくなる
  • 🧠 レビュアーが設計意図を理解しやすい
  • 💬 レビューコメントが本質的な議論に集中

実際にCopilotに「PRの説明を作成して」と依頼すると、コードの変更内容を分析して、WHAT/HOW/WHYを自動生成してくれます。

参考情報

インストラクションやプロンプトファイルの構造

.github/
├── copilot-instructions.md      # インストラクション
├── ISSUE_TEMPLATE.md             # Issueテンプレート
├── PULL_REQUEST_TEMPLATE.md      # PRテンプレート
└── prompts/                      # プロンプトテンプレート集
    ├── create-issue.prompt.md
    └── create-pr.prompt.md

ハマりそうなポイントと対策

  • copilot-instructions.mdの内容は、会話が長くなるとAIは忘れてしまうことがある
    • 専用のプロンプトで明確に指示する方が良さそう
    • 「インストラクションをもう一度読み込んで」という指示も有効
    • 1つのファイルにたくさん書くより、別ファイルにしてリンク貼る

最後に

最後まで読んでくださり感謝です🙇

10
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?