Skip to content

tanakari/copilot-coding-agent-guide-templates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Copilot コーディングエージェント ユーザーガイド & テンプレート

1. はじめに

このリポジトリは、GitHub CopilotAI エージェント を使った効率的なソフトウェア開発のためのテンプレート集とサンプルプロジェクトを提供します。

1.1. 構成

本リポジトリは以下の3つの構成要素で成り立っています:

1.1.1. 📖 README.adoc(メインガイド)

  • 目的: AI駆動開発の包括的なガイドドキュメント

  • 内容: 環境構築からプロジェクト開始まで、AI開発に必要な全手順を解説

  • 対象: GitHub Copilot初心者から上級者まで、段階的に学習できる構成

1.1.2. 📁 sample-files(サンプル)

  • 目的: AI駆動開発の実践例と学習用リファレンス

  • 内容: 実際のアプリケーション開発を通じたAI開発プロセス全体の体験

  • 対象: メンバー管理システムを題材とした具体的な実装例

1.1.3. 📁 template-files(テンプレート)

  • 目的: 新しいプロジェクト作成時のひな形

  • 内容: プロジェクトの仕様に関係なくAI駆動開発で必要な基本ファイル

  • 対象: プロジェクト固有の情報は含まず、汎用的な構造とフォーマット

1.2. 使い分け

用途 README.adoc template-files sample-files

プロジェクト開始前の学習

✅ 全体の流れとコンセプト理解

❌ 構造のみで手順不足

❌ 具体例のみで汎用性不足

新プロジェクト開始

⚪ 手順ガイドとして参照

✅ ひな形をコピーして[括弧]部分を編集

❌ 参考のみ

AI開発手法学習

⚪ 基本的な概念理解

❌ 構造のみで内容不足

✅ 具体的な仕様で実践的学習

開発プロセス理解

✅ 完全なワークフロー解説

△ 基本的な流れのみ

✅ 完全なワークフロー体験

プロジェクト固有情報

❌ 汎用的な説明のみ

⚪ [括弧]表記でプレースホルダ

⚪ メンバー管理システムの具体例

GitHub Copilot コーディングエージェントは、AIを活用してコードの提案・実装を行い、開発者の生産性を大幅に向上させるツールです。 簡単に言うと、IssueにCopilotをアサインすると、Copilotが自動的にコードを実装してPull Requestを作成します

Tip

AI駆動開発では、適切なドキュメント整備がAIの性能を大きく左右します。 このガイドに従って環境を整備することで、効果的なAI開発パートナーシップを構築できます。

2. 前提条件

  • GitHubアカウントを持っていること

  • 基本的なGitの操作知識があること

  • プログラミングの基礎知識があること

3. template-filesを使った新規プロジェクトの開始

新しいプロジェクトでAI駆動開発を始める場合 は、template-files/ を使用してください。

詳細な手順については、📋 template-files新規プロジェクト開始ガイド を参照してください。

主な手順:

  1. テンプレートコピー: template-files/をプロジェクトにコピー

  2. プロジェクト固有設定: [括弧]部分をプロジェクト情報に置き換え

  3. AI開発開始: GitHub Copilot設定後、最初のIssue作成

4. sample-filesを使った実践的AI開発体験

実際にアプリケーションを動作させながらAI開発を体験したい場合 は、メンバー管理システムの完全な実装体験をお試しください。

詳細な手順については、🎯 sample-files実践的AI開発体験ガイド を参照してください。

主な体験内容:

  1. 環境準備: Java + Maven + Git環境でのプロジェクト開始

  2. 段階的DDD実装: ドメイン層からUI層まで順次AI開発

  3. 完全なアプリケーション: メンバー管理システムの動作確認

  4. AI開発ワークフロー: Issue作成からPR完了まで完全体験

Tip

学習効果を最大化するために

sample-filesでの実践体験後、学んだ手法をtemplate-files で実際のプロジェクトに適用することで、AI駆動開発のスキルを定着させられます。

5. GitHub Copilotの利用準備

5.1. GitHub Copilotのサブスクリプション登録

GitHub Copilot コーディングエージェントを使用するには、 Copilot コーディングエージェント が利用可能なプランに登録する必要があります。 本ガイドでは Copilot Pro を利用します。

5.1.1. 登録手順

手順 操作内容

1

GitHubにログイン
https://github.com にアクセスし、右上の Sign in をクリックしてログインします。

2

Copilotの申込ページを開く
画面右上のプロフィールアイコン → Settings → 左側メニューの CopilotGet Copilot または Start free trial をクリック

3

プランの選択
提示されるプランから Copilot Pro を選択します。

4

支払い情報を入力
クレジットカードまたはGitHubが対応する決済方法と請求先住所を入力します。
日本の住所入力例は、欄外のTable「日本の住所入力例」を参照してください。

5

登録完了の確認
Confirm をクリックして申し込みを確定します。完了画面に "GitHub Copilot has been activated" と表示され、確認メールが届きます。

Table 1. 日本の住所入力例
項目 入力内容

FirstName / LastName

クレジットカードに記載されているローマ字氏名

TARO YAMADA

Address Line 1

番地・丁目・マンション名などを英語表記で入力

1-1-1 Chiyoda, Apt. 101

City

市区町村を英語で入力

Chiyoda-ku、Suita-shi

Country/Region

Japan を選択

Japan

Postal Code

郵便番号をハイフン付きで入力

100-0001

State/Province

都道府県を英語で入力

Tokyo、Osaka

Note

日本語住所は https://judress.tsukuenoue.com/ にて英語に変換できます。

5.2. GitHub Copilot コーディングエージェントを有効にする

手順 操作内容

1

コーディングエージェントの設定を開く
画面右上のプロフィールアイコン → Settings → 左側メニューの CopilotCoding agent をクリック

2

対象リポジトリを選択
Repository access を Only select repositories に設定し、Select repositories ボタンから利用するリポジトリを選択します。

Tip

セキュリティの観点から、Only select repositories を選択して必要なリポジトリのみに限定することを推奨します。

6. AI駆動開発準備

AI駆動開発を効果的に行うためには、AIが理解しやすい形でプロジェクトの情報を整備する必要があります。 以下のドキュメントを準備することで、AIのパフォーマンスが大幅に向上します。

6.1. 準備すべきドキュメント一覧

順序 ドキュメント 目的 重要度

1

README.md

プロジェクト概要とセットアップ手順

⭐⭐⭐

2

INSTRUCTIONS.md

AIへの指示とルール(エントリーポイント)

⭐⭐⭐

3

docs/SPEC.md

機能仕様の一覧(仕様書ハブ)

⭐⭐⭐

4

docs/specs/api/

RESTful API仕様書(実装詳細)

⭐⭐⭐

5

docs/specs/ui/

画面・UI仕様書(実装詳細)

⭐⭐⭐

6

docs/specs/db/

データベース設計書(実装詳細)

⭐⭐⭐

7

PROJECT_STRUCTURE.md

プロジェクト構造リファレンス

⭐⭐

8

.github/

Issue・PR作成フォーマット

⭐⭐

9

.editorconfig

エディタ設定とフォーマット統一

⭐⭐

10

docs/development-flow.md

開発プロセス

⭐⭐

11

docs/conventions.md

コーディング規約

⭐⭐

12

docs/architecture.md

アーキテクチャ方針

⭐⭐

13

docs/implementation-guide.md

DDD実装ガイドライン

⭐⭐

14

docs/policies.md

開発ポリシー

⭐⭐

15

docs/ai/agent.md

AI作業契約(詳細ルール)

16

docs/prompts-examples.md

AI依頼例(上級者向け)

6.2. ファイル配置先

各ドキュメントの配置場所は以下の通りです:

  • プロジェクトルート: README.md, INSTRUCTIONS.md, PROJECT_STRUCTURE.md, SETUP.md, .editorconfig

  • docs/: 開発プロセス関連ドキュメント、仕様書、AI関連ドキュメント

  • docs/specs/: 仕様書実体(プロジェクト固有に書き換え前提)

  • docs/ai/: AI関連ドキュメント統合

  • .github/: GitHubテンプレート

詳細なディレクトリ構造と各ファイルの役割については、PROJECT_STRUCTURE.md を参照してください。

Note

テンプレートとサンプルの違い

  • template-files/: 汎用的なひな形(プロジェクト固有情報は [括弧] で表記)

  • sample-project/: 具体的な実装例(メンバー管理システムの完全な仕様)

6.3. 各ドキュメントの作成ガイド

6.3.1. README.md の作成

プロジェクトの「顔」となる最重要ドキュメントです。

目的

プロジェクトの概要、セットアップ手順、基本的な使用方法の説明

配置場所

プロジェクトルート (/README.md)

参考テンプレート

README.mdサンプル

含めるべき内容:

  • プロジェクトの目的と概要

  • 主な機能

  • 技術スタック

  • セットアップ手順

  • 基本的な使用方法

  • 関連ドキュメントへのリンク

6.3.2. INSTRUCTIONS.mdの作成

AIエージェントへの指示とプロジェクトルールをまとめた最重要ドキュメントです。

目的

AIエージェントへの具体的な指示とルールの提供

配置場所

プロジェクトルート (/INSTRUCTIONS.md)

参考テンプレート

INSTRUCTIONS.mdサンプル

含めるべき内容:

  • AIエージェントの役割と責任範囲

  • コーディングスタイルと命名規則

  • コミットメッセージのフォーマット

  • PRの作成とレビュー手順

  • 使用する技術スタックとフレームワーク

  • テストとデプロイの手順

6.3.3. SPEC.mdの作成

実装すべき機能を明確化するためのドキュメントです。

目的

機能仕様の概要と詳細仕様書へのリンク(仕様書ハブ)

配置場所

/docs/SPEC.md

参考テンプレート

SPEC.mdサンプル

含めるべき内容:

  • 機能一覧と概要

  • 各機能の詳細仕様書へのリンク(specs/ 配下)

  • 優先度と実装順序

  • 画面遷移図やAPI仕様の概要

6.3.4. docs/specs/ 仕様書の作成

実装の詳細を定義する最重要な仕様書群です。

API仕様書 (docs/specs/api/)

目的

RESTful API の詳細仕様定義

配置場所

/docs/specs/api/[リソース名]/[操作名].md

参考テンプレート

APIテンプレート

含めるべき内容:

  • エンドポイント定義 (URL、HTTPメソッド)

  • リクエスト・レスポンス形式 (JSON例)

  • パラメータ詳細 (必須/任意、バリデーション)

  • エラーレスポンス (ステータスコード、メッセージ)

  • 認証・認可要件

ファイル例:

  • docs/specs/api/members/list.md - メンバー一覧取得API

  • docs/specs/api/members/create.md - メンバー登録API

UI仕様書 (docs/specs/ui/)

目的

画面・ユーザーインターフェースの詳細仕様定義

配置場所

/docs/specs/ui/[画面名].md

参考テンプレート

UIテンプレート

含めるべき内容:

  • 画面レイアウト・構成要素

  • 入力フィールドとバリデーション

  • ボタン・リンクの動作仕様

  • 画面遷移・状態変化

  • レスポンシブ対応要件

ファイル例:

  • docs/specs/ui/member-list.md - メンバー一覧画面

  • docs/specs/ui/member-registration.md - メンバー登録画面

データベース設計書 (docs/specs/db/)

目的

データベース構造とテーブル設計の詳細定義

配置場所

/docs/specs/db/[設計書名].md

参考テンプレート

DBテンプレート

含めるべき内容:

  • テーブル定義 (カラム、データ型、制約)

  • 主キー・外部キー関係

  • インデックス設計

  • データ整合性ルール

  • マイグレーション方針

ファイル例:

  • docs/specs/db/database-design.md - 全体的なDB設計

Important

specs/ ディレクトリの重要性

これらの仕様書は AIエージェントが実装時に直接参照する最重要ドキュメント です:

  • 具体性が必要: 曖昧な表現は避け、実装可能なレベルまで詳細化

  • 整合性の確保: API・UI・DBの仕様が矛盾しないよう注意

  • 更新の徹底: 仕様変更時は関連するすべてのファイルを同期更新

テンプレートからの書き換え前提 templates/ の specs/ 配下はサンプル(メンバー管理機能)のため、 プロジェクト固有の機能仕様に必ず書き換えてください。

6.3.5. PROJECT_STRUCTURE.mdの作成

プロジェクトの具体的なディレクトリ構造とファイル配置ルールを示すリファレンスドキュメントです。

目的

実装時の構造リファレンスとAIエージェント向け配置指示

配置場所

プロジェクトルート (/PROJECT_STRUCTURE.md)

参考テンプレート

PROJECT_STRUCTURE.mdサンプル

含めるべき内容:

  • フェーズ別のディレクトリ構造(ドキュメント→実装→完成)

  • AIエージェント向けファイル配置ルール

  • 実装時のパッケージ構成例

  • クイックリファレンス(よく使うパス一覧)

6.3.6. .editorconfigの作成

エディタ設定とコードフォーマットの統一を行う設定ファイルです。

目的

エディタ横断でのコード品質統一とGoogle Java Formatとの併用

配置場所

プロジェクトルート (/.editorconfig)

参考テンプレート

.editorconfigサンプル

含めるべき内容:

  • 基本設定 (文字エンコーディング、改行コード、最終行)

  • インデント設定 (全言語2スペース統一: Java, JavaScript, HTML, CSS, XML等)

  • 行末スペースの自動削除

  • ファイル形式別の個別設定

Note

Google Java Format との統合について

.editorconfig の役割:

  • エディタレベルでの基本設定(文字コード、改行、インデント等)

  • 全ファイル形式の共通ルール定義(2スペース統一)

Google Java Format との統合:

  • Google Java Format: Javaコード専用の詳細フォーマット(括弧位置、スペース配置等)

  • .editorconfig: 全言語共通の基本設定(インデント、文字コード、改行等)

統合効果:

  • Java: Google Java Format + .editorconfig の基本設定

  • その他すべてのファイル: .editorconfig のみで統一(2スペースインデント)

推奨開発環境設定:

  • VS Code: Google Java Format拡張機能 + .editorconfig対応

  • IntelliJ IDEA: Google Java Format Plugin + .editorconfig対応

  • 保存時自動フォーマット設定を有効化

この組み合わせにより、Javaの詳細フォーマットを維持しながら、 プロジェクト全体で一貫した2スペースインデントを実現できます。

6.3.7. development-flow.mdの作成

Issue作成からマージまでの開発プロセスを定義します。

目的

開発プロセスの標準化と効率化

配置場所

/docs/development-flow.md

参考テンプレート

development-flow.mdサンプル

含めるべき内容:

  • Issueの作成と管理方法

  • Copilotのアサイン方法

  • コード実装とPR作成の手順

  • PRレビューとマージのフロー

6.3.8. conventions.mdの作成

命名規則やコーディングスタイルの統一ルールをまとめます。

目的

コードの一貫性と可読性の向上

配置場所

/docs/conventions.md

参考テンプレート

conventions.mdサンプル

含めるべき内容:

  • 命名規則 (変数名、関数名、クラス名など)

  • コーディングスタイル (インデント、改行、コメントなど)

  • フォルダ構成とファイル命名ルール

  • コードフォーマット設定 (Google Java Format + .editorconfig)

6.3.9. architecture.mdの作成

システム設計方針とアーキテクチャパターンをまとめます。

目的

システム設計の一貫性と拡張性の確保

配置場所

/docs/architecture.md

参考テンプレート

architecture.mdサンプル

含めるべき内容:

  • システム全体のアーキテクチャ概要

  • 各コンポーネントの役割と関係性

  • 使用するアーキテクチャパターン (例: MVC, マイクロサービスなど)

6.3.10. policies.mdの作成

開発ポリシー (セキュリティ、品質管理など) をまとめます。

目的

開発プロセスの標準化とリスク管理

配置場所

/docs/policies.md

参考テンプレート

policies.mdサンプル

含めるべき内容:

  • セキュリティポリシー

  • 品質管理ポリシー

  • コードレビューのルール

  • デプロイメントポリシー

6.3.11. prompts-examples.mdの作成

AIエージェントへの効果的な依頼例をまとめます。

目的

AIエージェントへの具体的な依頼方法を示す

配置場所

/docs/prompts-examples.md

参考テンプレート

prompts-examples.mdサンプル

含めるべき内容:

  • 具体的な依頼文の例

  • 依頼時の注意点

  • 効果的なコミュニケーション方法

6.3.12. agent.mdの作成

AIエージェントとの作業契約・責任範囲を明確にします。

目的

AIエージェントとの作業契約と責任範囲の明確化

配置場所

/instructions/agent.md

参考テンプレート

agent.mdサンプル

含めるべき内容:

  • AIエージェントの役割と責任範囲

  • 作業契約の条件

  • 問題発生時の対応方法

6.3.13. GitHubテンプレートの作成

GitHubのIssueとPull Request作成時に使用するテンプレートを用意します。

目的

Issue・PR作成の標準フォーマットを提供し、情報の一貫性を確保

配置場所

.github/ISSUE_TEMPLATE/.github/pull_request_template.md

参考テンプレート

GitHubテンプレートサンプル

含めるべき内容:

Issueテンプレート:

  • バグ報告テンプレート

    • 再現手順

    • 期待される動作

    • 実際の動作

    • 環境情報 (OS、ブラウザ、バージョンなど)

  • 機能要望テンプレート

    • 要望の概要

    • 利用シナリオ

    • 期待される効果

    • 優先度

PRテンプレート:

  • 変更内容の概要

  • 関連Issue番号

  • テスト実施状況

  • レビュー観点

  • チェックリスト

6.3.14. ドキュメント作成の注意点

  • 各ドキュメントは明確で具体的な内容を心がける

  • AIエージェントが理解しやすいように、専門用語や略語は避ける

  • ドキュメントの整合性を保つため、変更があった場合は関連するすべてのドキュメントを更新する

Warning

ドキュメントが不十分だと、AIが誤った判断をしてしまう可能性があります。 特に INSTRUCTIONS.md と SPEC.md は必ず整備してください。

6.3.15. 作成順序の推奨

順序 ドキュメント 作成のポイント

1

README.md

プロジェクトの「顔」となるため最初に作成

2

INSTRUCTIONS.md

AIの動作を決める最重要ドキュメント

3

SPEC.md

実装すべき機能を明確化

4

開発フロー

Issue→PR→マージの流れを定義

5

その他ドキュメント

プロジェクトの特性に応じて

6.3.16. テンプレートの活用

すべてのドキュメントのテンプレートは templates/ ディレクトリに用意されています:

7. 環境構築とテンプレート構成

7.1. 開発フロー

flowchart TD
    A[開発者: Issue作成依頼] --> B[Copilot: Issue作成]
    B --> C[開発者: Issue確認・Copilotアサイン]
    C --> D[Copilot: コード実装]
    D --> E[Copilot: Pull Request作成]
    E --> F[開発者: PRレビュー]
    F --> G{修正必要?}
    G -->|Yes| H[開発者: フィードバック]
    H --> I[Copilot: 修正対応]
    I --> F
    G -->|No| J[開発者: PRマージ]
    J --> K[完了]
Loading

7.1.1. GitHub リポジトリ作成手順

手順 操作内容

1

新規リポジトリ作成
GitHub右上の +New repository

2

リポジトリ設定
- Repository name: プロジェクト名を入力 - Description: プロジェクトの概要を記載 - Public/Private: 必要に応じて選択 - ✅ Add a README file にチェック

3

リポジトリ作成完了
Create repository をクリックしてリポジトリを作成

7.1.2. Copilot コーディングエージェント有効化

手順 操作内容

1

Settings画面を開く
GitHub右上のプロフィールアイコン → Settings

2

Copilot設定画面
左側メニューの CopilotCoding agent

3

リポジトリ追加
Repository accessOnly select repositoriesSelect repositories で作成したリポジトリを追加

7.2. テンプレート導入

7.2.1. Issue作成とCopilotアサイン

手順 操作内容

1

Issueページを開く
作成したリポジトリページで Issues タブをクリック

2

新しいIssue作成
New issue ボタンをクリック

3

Copilotをアサイン
右側の Assignees から @copilot を選択してアサイン

7.2.2. テンプレート導入Issue

以下の内容でIssueを作成してください:

タイトル:

AI駆動開発テンプレートファイルの導入

本文:

tanakari/copilot-coding-agent-guide-templates リポジトリの templates ディレクトリから以下のファイルを取得して、このリポジトリのルートに配置してください:

## 取得するファイル・ディレクトリ

### 必須ファイル

- README.md
- INSTRUCTIONS.md
- SETUP.md
- PROJECT_STRUCTURE.md
- .editorconfig

### ディレクトリ(全ファイルを含む)

- docs/ (仕様書、AI関連ドキュメント含む)
- .github/ (Issue・PRテンプレート)

## 実装要件

- 各ファイルを適切な場所に配置
- 空のディレクトリには .gitkeep ファイルを作成
- 既存の README.md は上書きせず、README_template.md として保存
- specs/ ディレクトリのファイルはプロジェクト固有の仕様書として後で書き換える前提で配置

## 完了条件

- [ ] すべてのテンプレートファイルがルートに正しく配置されている
- [ ] ディレクトリ構造が templates/ と同じになっている
- [ ] 空のディレクトリに .gitkeep が作成されている
- [ ] ファイルのコピーが完了している

## 参考リンク

- テンプレート元: https://github.com/tanakari/copilot-coding-agent-guide-templates/tree/main/templates

7.3. プロジェクト情報更新

テンプレート導入完了後、新しいIssueでプロジェクト固有情報を更新します:

タイトル:

プロジェクト固有情報への更新

本文:

導入されたテンプレートファイルをプロジェクト固有の情報に更新してください:

## プロジェクト情報

以下の情報に置き換えてください:
- **プロジェクト名**: [実際のプロジェクト名]
- **プロジェクト概要**: [プロジェクトの目的と概要]
- **技術スタック**: [使用技術(例:Spring Boot 3.5.x + Java 25 + Thymeleaf + PostgreSQL)]
- **開発チーム**: [チーム構成や連絡先情報]

## 更新対象ファイル

### README.md
- プロジェクト名とタイトル
- プロジェクト概要の説明
- 技術スタックの記載
- セットアップ手順のプロジェクト名

### INSTRUCTIONS.md
- 技術固有の指示
- プロジェクト固有のルール
- 使用フレームワークの設定

### docs/SPEC.md
- 実装予定の機能一覧
- プロジェクト固有の要件

### docs/specs/ ディレクトリ
- **docs/specs/api/**: API仕様書をプロジェクト固有の内容に書き換え
- **docs/specs/ui/**: UI仕様書をプロジェクト固有の内容に書き換え
- **docs/specs/db/**: データベース設計書をプロジェクト固有の内容に書き換え
- テンプレートの「メンバー一覧」例を実際の機能仕様に置き換える

### docs/ai/ ディレクトリ
- AI関連ドキュメントの中心として整備
- プロジェクト固有のAI指示を充実

## 完了条件

- [ ] すべてのテンプレート文言がプロジェクト固有の情報に置き換わっている
- [ ] リンクとパスが正しく動作する
- [ ] プロジェクトの目的と範囲が明確に記載されている
- [ ] 技術スタックが実際の使用技術と一致している
- [ ] specs/ ディレクトリがプロジェクト固有の仕様書に更新されている

7.4. 初期開発開始

環境構築完了後、DDD(ドメイン駆動設計)の原則に従って段階的にプロジェクト開発を開始します。小さなIssueに分割して進めることで、確実に動作確認しながら開発できます:

7.4.1. Issue 1: プロジェクト基盤設定の作成

タイトル:

プロジェクト基盤設定ファイルの作成(インフラ層)

本文:

INSTRUCTIONS.md に記載された技術スタックに基づいて、プロジェクトの基盤設定ファイルを作成してください。

## 作成内容(インフラストラクチャ層のみ)

- Maven または Gradle によるビルド設定ファイル
- アプリケーションのメイン設定ファイル(application.yml)
- データベース接続設定
- 基本的なディレクトリ構造(DDD準拠)

## ディレクトリ構造

```
src/main/java/com/example/project/
├── Application.java        # メインクラス
├── infrastructure/         # インフラストラクチャ層
│   └── config/             # 設定クラス
├── domain/                 # ドメイン層(空)
├── application/            # アプリケーション層(空)
└── presentation/           # プレゼンテーション層(空)
```

## 参考ファイル

- INSTRUCTIONS.md: 技術スタックと開発ルール
- docs/architecture.md: DDD設計方針

## 完了条件

- [ ] プロジェクトがビルドできる
- [ ] 設定ファイルが適切に配置されている
- [ ] DDD準拠のパッケージ構成になっている
- [ ] データベース接続設定が完了している

7.4.2. Issue 2: ドメイン層の基本実装

GitHub CopilotチャットでIssue作成を依頼:

@workspace ドメイン層の基本実装のIssueを作成してください。

**レイヤー**: [Domain] ドメイン層
**優先度**: High
**参照仕様**: docs/specs/db/database-design.md

Copilotがレスポンスしたら、そのIssueを実際に作成し、Copilotにアサインして実装を依頼

7.4.3. Issue 3: インフラストラクチャ層の実装

GitHub CopilotチャットでIssue作成を依頼:

@workspace インフラストラクチャ層の実装のIssueを作成してください。

**レイヤー**: [Infrastructure] インフラストラクチャ層
**優先度**: Medium
**参照仕様**: docs/specs/db/database-design.md
**依存関係**: ドメイン層のリポジトリインターフェース

Copilotがレスポンスしたら、そのIssueを実際に作成し、Copilotにアサインして実装を依頼

  • JPA Entityクラス(ドメインエンティティとは別)

  • リポジトリ実装クラス(Spring Data JPA)

  • データベーステーブル作成DDL

  • ドメインエンティティ ↔ JPA Entity 変換ロジック

8. 実装ガイドライン

  • 変換責務: JPAエンティティ ↔ ドメインエンティティの変換

  • 依存方向: インフラ層 → ドメイン層(逆方向の依存禁止)

  • テーブル設計: specs/db/ の設計に厳密に従う

  • トランザクション: リポジトリ実装でトランザクション管理

9. 参考ファイル

  • Domain層のリポジトリインターフェース

  • specs/db/database-design.md: データベース設計書

10. 完了条件

  • ❏ リポジトリが正しく実装されている

  • ❏ データベーステーブルが作成される

  • ❏ ドメインエンティティとJPAエンティティが分離されている

  • ❏ 変換ロジックが適切に実装されている

  • ❏ 基本的なCRUD操作が動作する

==== Issue 4: アプリケーション層の実装

**GitHub CopilotチャットでIssue作成を依頼:**

```
@workspace アプリケーション層の実装のIssueを作成してください。

**レイヤー**: [Application] アプリケーション層
**優先度**: Medium
**参照仕様**: docs/specs/api/
**依存関係**: ドメイン層、インフラストラクチャ層
```

**Copilotがレスポンスしたら、そのIssueを実際に作成し、Copilotにアサインして実装を依頼**
- [ ] ユースケースが正しく動作する
- [ ] DTOが適切に定義されている
- [ ] トランザクション境界が明確である
- [ ] 単体テストが実装されている

10.1. Issue 5: プレゼンテーション層の実装

GitHub CopilotチャットでIssue作成を依頼:

@workspace プレゼンテーション層の実装のIssueを作成してください。

**レイヤー**: [Presentation] プレゼンテーション層
**優先度**: Medium
**参照仕様**: docs/specs/api/
**依存関係**: アプリケーション層

Copilotがレスポンスしたら、そのIssueを実際に作成し、Copilotにアサインして実装を依頼

10.2. Issue 6: 統合テスト・E2Eテストの実装

GitHub CopilotチャットでIssue作成を依頼:

@workspace 統合テスト・E2Eテストの実装のIssueを作成してください。

**レイヤー**: [Testing] テスト実装
**優先度**: High
**参照仕様**: 全レイヤーの実装
**依存関係**: 全レイヤーの実装完了

Copilotがレスポンスしたら、そのIssueを実際に作成し、Copilotにアサインして実装を依頼

Tip

DDD準拠の段階的開発のメリット

  • レイヤー分離: 各層の責務が明確で保守性が向上

  • 依存方向制御: ドメイン層の独立性を保持

  • 段階的検証: 各層ごとに動作確認が可能

  • Copilotの理解促進: 明確な責務分割でAIの実装精度向上

DDD開発順序の重要性

  1. ドメイン層優先: ビジネスロジックを最初に確立

  2. インフラ層分離: 技術的関心事を分離して実装

  3. アプリケーション層: ユースケースを明確に実装

  4. プレゼンテーション層: 外部インターフェースとして実装

  5. 統合テスト: 全体の協調動作を確認

AI開発での注意点

  • 各Issueで単一レイヤーのみ実装することをAIに明示

  • レイヤー間の依存方向をIssue説明で明確化

  • Pure Javaでの実装をドメイン層で強調

10.3. Copilot作業状況の確認

GitHub上でのCopilotの作業状況は以下の方法で確認できます:

確認方法 詳細

Pull Request確認

Copilotが作業を完了すると自動的にPRが作成されます。
PRタイトルに [WIP] が付いている間は作業中です。

View session

IssueやPRから View session リンクで作業進捗をリアルタイム確認できます。

Issue コメント

Copilotから質問や確認事項がある場合、Issueにコメントされます。

Tip

効果的なプロジェクト開始のコツ

  • Issue作成時は明確で具体的な要件を記載する

  • Copilotの作業完了を待ってから次のIssueを作成する

  • PRレビューでは建設的なフィードバックを提供する

  • specs/ ディレクトリは書き換え前提でテンプレートから実際の仕様に更新する

  • 小さな単位でのタスク分割を心がける

11. AI駆動開発の実践

ドキュメントの準備が完了したら、実際にAI駆動開発を開始できます。

11.1. 開発フロー

flowchart TD
    A[開発者: Issue作成依頼] --> B[Copilot: Issue作成]
    B --> C[開発者: Issue確認・Copilotアサイン]
    C --> D[Copilot: コード実装]
    D --> E[Copilot: Pull Request作成]
    E --> F[開発者: PRレビュー]
    F --> G{修正必要?}
    G -->|Yes| H[開発者: フィードバック]
    H --> I[Copilot: 修正対応]
    I --> F
    G -->|No| J[開発者: PRマージ]
    J --> K[完了]
Loading

11.2. 実際の作業ステップ

11.2.1. Step 1: Issue作成依頼

  • GitHubのIssueでCopilotに作業を依頼

  • 具体的な要件と完了条件を明記

  • 関連する仕様書やドキュメントを参照

11.2.2. Step 2: Copilotによる作業

  • Copilotが自動的にコードを実装

  • PRのタイトルが [WIP] の間は作業中

  • [WIP] が外れたら作業完了

11.2.3. Step 3: レビューとフィードバック

  • Pull Requestをレビュー

  • 必要に応じてコメントで修正依頼

  • View session で作業状況をリアルタイム確認可能

11.2.4. Step 4: マージと完了

  • 品質確認後にPRをマージ

  • Issueが自動的にクローズ

Tip

効果的なAI開発のコツ

  • 明確で具体的な指示を心がける

  • 既存のドキュメントを積極的に参照させる

  • 小さな単位でのIssue作成を推奨

  • レビューでは建設的なフィードバックを提供

12. リポジトリ構造

copilot-coding-agent-guide-templates/
├── README.adoc                    # メインガイド(このファイル)
├── LICENSE                        # ライセンス
├── template-files/                # 🎯 新プロジェクト用テンプレート
│   ├── README.md                 # プロジェクト概要テンプレート
│   ├── INSTRUCTIONS.md           # AI開発指示書テンプレート
│   ├── SETUP.md                  # セットアップガイドテンプレート
│   ├── PROJECT_STRUCTURE.md      # プロジェクト構造定義
│   ├── .editorconfig            # エディタ設定
│   ├── .github/                 # GitHubテンプレート
│   │   └── pull_request_template.md
│   └── docs/                    # ドキュメントテンプレート
│       ├── specs/               # 仕様書テンプレート
│       ├── ai/                  # AI関連ドキュメント
│       └── *.md                # 開発プロセスドキュメント
└── sample-files/                # 📚 学習用サンプルプロジェクト
    ├── README.md               # メンバー管理システム概要
    ├── README_SAMPLE.md        # サンプル学習ガイド
    ├── [template-files と同じ構造]
    └── specs/                  # 具体的な仕様書例
        ├── api/members/        # メンバーAPI仕様
        └── ui/                # UI仕様

13. 次のステップ

このガイドを完了した後は:

13.1. 🎯 sample-files学習の場合

  1. sample-files実践的AI開発体験ガイド で完全な開発サイクルを体験

  2. メンバー管理システムの実装を通じてAI開発手法を習得

  3. 学習後にtemplate-filesを実プロジェクトに適用

13.2. 📋 template-files利用の場合

  1. template-files新規プロジェクト開始ガイド の詳細手順に従って実装

  2. プロジェクト固有情報を設定([括弧]の部分を編集)

  3. AI開発開始

14. サポート・フィードバック


🚀 Happy AI-Driven Development!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published