# Provider Guide — GitHub Copilot (VS Code / JetBrains / Visual Studio)

Panduan ini menjelaskan cara terbaik menggunakan Project Foundation Pack dengan GitHub Copilot, khususnya Copilot Chat.

---

## Kenapa Copilot Berbeda

Copilot dirancang untuk coding assistance, bukan foundation generation. Untuk tahap foundation, Copilot kurang ideal dibanding Claude atau ChatGPT. Namun untuk tahap **execution** setelah foundation jadi, Copilot sangat powerful karena terintegrasi langsung dengan editor dan bisa baca codebase.

**Rekomendasi penggunaan:**
- Foundation generation → gunakan Claude, Gemini, atau ChatGPT
- Execution phase → gunakan Copilot

---

## Setup untuk Foundation Pack

### 1. Tambahkan instruksi ke Copilot Instructions

Buat file `.github/copilot-instructions.md` di root repo Anda:

```markdown
# Copilot Instructions

Selalu gunakan foundation pack project ini sebagai source of truth sebelum melakukan apapun.

## Foundation files (baca sebelum coding)
- docs/foundation-pack/engineering-guidelines.md — konvensi kode
- docs/foundation-pack/ai-guardrails.md — aturan kerja AI
- docs/foundation-pack/architecture-blueprint.md — arsitektur sistem

## Aturan wajib
- Jangan tambah dependency tanpa approval eksplisit
- Ikuti naming convention di engineering-guidelines.md
- Patch seminimal mungkin — jangan refactor area yang tidak terkait scope
- Sebelum implementasi modul besar, tanya apakah feature spec sudah ada
- Jangan sisakan scaffold/demo content

## Sebelum mengubah kode
1. Baca file yang relevan dulu
2. Ikuti pattern yang sudah ada di repo
3. Konfirmasi scope sesuai feature spec aktif
```

### 2. Gunakan `#file:` reference di Copilot Chat

Di Copilot Chat (VS Code), gunakan `#file:` untuk attach file:

```
#file:docs/foundation-pack/ai-guardrails.md
#file:docs/features/auth-module.md

Implementasikan auth module sesuai feature spec dan guardrails di atas.
Mulai dari [endpoint/component] dulu.
```

### 3. Gunakan `@workspace` untuk context codebase

```
@workspace berdasarkan foundation pack dan engineering guidelines yang ada,
implementasikan [fitur spesifik] untuk modul [nama modul].
Ikuti pattern yang sudah ada di codebase.
```

---

## Alur Kerja yang Direkomendasikan

```
FOUNDATION (bukan di Copilot — pakai Claude/ChatGPT/Gemini)
     ↓
HEALTH CHECK (bukan di Copilot)
     ↓
FEATURE SPEC (bisa di Copilot Chat dengan #file:)
     ↓
PRE-EXECUTION CHECKLIST (Copilot Chat)
     ↓
EXECUTION (ini kekuatan utama Copilot)
     ↓
SESSION HANDOFF (Copilot Chat jika perlu)
```

### Pre-execution checklist di Copilot

```
#file:docs/foundation-pack/ai-guardrails.md
#file:docs/features/[nama-feature].md

Sebelum saya mulai implementasi, buat pre-execution checklist:
1. File apa yang akan disentuh
2. Urutan implementasi yang benar
3. Risiko yang harus diperhatikan
4. Command verifikasi setelah selesai
```

### Execution di Copilot

```
#file:docs/foundation-pack/engineering-guidelines.md
#file:docs/foundation-pack/architecture-blueprint.md
#file:docs/features/[nama-feature].md

Implementasikan [fitur spesifik] sesuai feature spec.
Mulai dari [file/layer] dulu.
Ikuti konvensi di engineering-guidelines.
Patch hanya yang diperlukan untuk scope ini.
```

---

## Tips Khusus Copilot

- **`@workspace`** — gunakan untuk memberi Copilot context seluruh codebase
- **`#file:`** — selalu reference file foundation sebelum minta implementasi
- **Copilot Edits** — gunakan fitur ini untuk multi-file changes berdasarkan feature spec
- **`/new`** — untuk membuat file baru sesuai struktur yang ada di blueprint
- **Inline suggestion** — Copilot akan otomatis follow pattern dari engineering-guidelines jika sudah di-setup dengan benar

---

## Limitation yang Perlu Diketahui

- Copilot tidak dirancang untuk foundation generation — jangan gunakan untuk tahap ini
- Context window lebih kecil dibanding Claude — batasi jumlah `#file:` references per request
- Copilot tidak membaca `.github/copilot-instructions.md` di semua editor — verifikasi support di editor Anda
- Untuk task foundation yang kompleks, selalu gunakan provider lain lebih dulu
