---
name: copilot-instructions-creation
description: "Use when: ユーザーがプロジェクトやチーム用の `copilot-instructions.md` を作成または最適化したい時に使用します。ベストプラクティスに基づき、AIのハルシネーションを防ぎ、期待通りのコードを生成させるための効果的なカスタム指示ファイルを作成します。"
---

# `copilot-instructions.md` 作成・最適化スキル

## 🎯 目的

このSkillは、GitHub Copilotの効果を最大化するためのワークスペース指示ファイル（`copilot-instructions.md` や `.github/copilot-instructions.md`）の作成と最適化を行います。独自の「ベストプラクティス・フレームワーク」に基づき、不明瞭な部分のヒアリングを通じ、AIに文脈と制約を正確に伝える高品質なプロンプトファイルを生成します。

## 💎 コア原則

Copilotへの指示は「人間が読むマニュアル」ではなく、「AIが解釈し実行するためのプロンプト」です。以下の原則に基づいてファイルを生成します。

1. **明示的かつ簡潔に (Be Explicit and Concise)**:
   - 曖昧な表現や冗長な文章を避け、短い箇条書きで記述します。Copilotの限られたコンテキストウィンドウを節約します。
2. **具体例の提示 (Provide Examples / Few-Shot Prompting)**:
   - 抽象的なルールの代わりに、「良い例（Good）」や「悪い例（Bad）」のコードスニペットを含めるようにユーザーに促し、組み込みます。
3. **境界の明示とネガティブプロンプト (Determine Boundaries)**:
   - 「何をすべきか」だけでなく「何をしてはいけないか（非推奨の技術、使ってはいけない関数など）」を明記します。
4. **役割の付与 (Role Prompting)**:
   - AIに特定のペルソナ（例: 「あなたは熟練のNext.jsエンジニアです」）を与えます。

## 📋 実行ステップ

ユーザーから `.copilot-instructions.md` の作成依頼を受けた場合、以下のステップで進めてください。

### Step 1: 要件のヒアリング (Information Gathering)

以下の4つのコアカテゴリ（Taxonomy）について、ユーザーのプロジェクト設定を質問してください。（既に情報が十分に提供されている場合はスキップ可能）

- **コーディング規約・スタイル (Coding Standards & Style)**
  - 例: 命名規則、関数の定義方法、インデント、型定義（interface vs type）など
- **アーキテクチャ・設計原則 (Architecture & Design Principles)**
  - 例: クリーンアーキテクチャ、ディレクトリ構造のルールなど
- **技術スタック・依存関係 (Tech Stack & Dependencies)**
  - 例: UIフレームワークのバージョン、利用ライブラリとその制約（例: 「Moment.jsではなくdate-fnsを使う」）
- **テスト・エラーハンドリング (Testing & Error Handling)**
  - 例: 利用するテストフレームワーク、モック作成方針、ログのフォーマット

_※注意_: 情報量が多すぎてファイルが肥大化しそうな場合は、ドメインごとの分割（例: フロントエンドとバックエンドで別々の指示ファイルを用意し、`@workspace` への質問で使い分ける等）を提案してください。

### Step 2: ドラフトの設計 (Drafting)

情報が揃ったら、取得した要件を上記の「💎 コア原則」に従って markdown 形式で構造化します。
以下は推奨される構造です。

```markdown
# 役割 (Role)

あなたは [プロジェクトの領域] に精通した、[求めるレベル] エンジニアとしての役割を担います。以下の指示に従い、高品質なコードを提供してください。

# コーディング規約 (Coding Standards)

- [具体ルールの箇条書き]
- Good / Bad コードの例

# 技術スタック・制限 (Tech Stack & Restrictions)

- [使用するフレームワーク・ライブラリのバージョン]
- ネガティブプロンプト（例: `any` 型は絶対に使用しない。`xxx` パッケージは非推奨のため使用しない等）

# アーキテクチャと設計 (Architecture & Design)

- ...

# テストとデバッグ (Testing & Debugging)

- ...

# Agent Skillの活用 (Agent Skill Utilization)

- [このプロジェクトで特に活用してほしいAgent Skillとその使い方の例]
```

### Step 3: セルフレビュー (Self-Review)

- ドラフトを作成し、ユーザーに提示する前に、必ず自分で内容を厳格にレビューしてください
- コア原則のルールに従っているかの観点で、改善できる箇所がないか確認してください
- markdown の構造（章立てなど）が適切で、読みやすいかも確認してください
- 改善点があれば、修正を行ってください

### Step 4: レビューと出力 (Review & Output)

- 作成したドラフトをユーザーに提示します。
- 必要に応じて「具体例（Good/Bad）」の追加提案などを行い、内容をブラッシュアップします。
- 最終的な内容を `copilot-instructions.md` もしくは `.github/copilot-instructions.md` としてファイルに書き出します。
