- copilot-instructions.md (beide): Session END = automatisch, kein expliziter /history-Aufruf noetig - Agent schreibt session.md + staged history/ selbst vor git commit |
||
|---|---|---|
| .github | ||
| .vscode | ||
| data | ||
| docs | ||
| git-templates | ||
| history | ||
| prompts | ||
| scripts | ||
| user-settings | ||
| .copilot-no-tests | ||
| .gitignore | ||
| README.md | ||
rd13_copilot_setup
GitHub Copilot Workspace-Konfiguration für maximale Produktivität – portierbar auf alle Maschinen und Repositories.
Was ist das?
Dieses Repo enthält alle Konfigurationsdateien die nötig sind um GitHub Copilot wie ein Team aus Senior-Entwicklern arbeiten zu lassen:
- User-Level Settings – Copilot-Flags und Senior-Dev-Grundverhalten (per Settings Sync auf alle Geräte)
- Prompt Files – 10 wiederverwendbare Agent-Workflows (
/requirements,/new-feature,/architecture, etc.) - Git-Templates – automatisch in jedes neue Repo kopiert via
git init(per Git-Alias) - Bootstrap-Skript – bestehende und geclonte Repos in Sekunden ausstatten (POSIX sh, läuft überall)
- Update-Mechanismus – Templates und Prompts in allen Repos mit einem Befehl aktuell halten:
git copilot-update
Templates aktuell halten – neuer Standard
Nach der Ersteinrichtung gibt es einen einzigen Befehl um alle Templates, Prompt-Dateien und Git-Hooks in einem Repo auf den neuesten Stand zu bringen:
git copilot-update
Was das macht:
- Setup-Repo pullen –
~/.copilot-setup/(SSH, HTTP-Fallback zuhttp://192.168.178.6:8083/cschulz/rd13_copilot_setup) - Globale Templates updaten –
~/.git-templates/+ VS Code Prompt-Dateien - Repo-lokale Hooks updaten –
.git/hooks/pre-commit copilot-instructions.md– nur überschreiben wenn noch TODO-Platzhalter enthalten (Backup.bakwird angelegt)
Empfehlung: In jedem Repo nach einem
git pullauf dem Setup-Repo ausführen, oder wenn ein neues Feature-Prompt oder eine Hook-Verbesserung verfügbar ist.
Auto-Update für das Setup-Repo selbst
Nach deploy.sh ist im Setup-Repo selbst ein post-merge Hook aktiv:
git pull # im Setup-Repo → deploy.sh läuft automatisch → alle Templates sofort aktuell
Opt-in: Auto-Update in anderen Repos nach git pull
copilot-bootstrap.sh --with-update-hook /pfad/zum/repo
# → installiert post-merge Hook: git pull → git copilot-update
Schnellstart
Ersteinrichtung (Linux / macOS)
# 1. Repo klonen
git clone <this-repo> ~/dotfiles/copilot-setup
cd ~/dotfiles/copilot-setup
# 2. Deploy-Skript ausführen
bash scripts/deploy.sh # macOS (bash)
fish scripts/deploy.fish # Linux mit fish
Das Skript legt alles an den richtigen Orten ab.
Bestehende oder geclonte Repos ausstatten
cd /path/to/existing-repo
copilot-bootstrap.sh
# → legt .github/copilot-instructions.md + .vscode/ + Hooks an, überschreibt nichts
# Mit opt-in Auto-Update nach git pull:
copilot-bootstrap.sh --with-update-hook
VS Code Settings Sync aktivieren (einmalig pro Gerät)
Ctrl+Shift+P → Settings Sync: Turn On → Mit GitHub-Account einloggen → Alle Elemente auswählen
Struktur
rd13_copilot_setup/
├── user-settings/
│ └── settings.json ← In ~/.config/Code/User/settings.json (Linux)
│ oder ~/Library/Application Support/Code/User/ (macOS)
├── prompts/ ← In VS Code User/prompts/ ablegen (Settings Sync)
│ ├── requirements.prompt.md /requirements – Requirements Engineering Workshop
│ ├── architecture.prompt.md /architecture – Architektur-Review + ADR erstellen
│ ├── new-feature.prompt.md /new-feature – Vollständiger Feature-Workflow
│ ├── code-review.prompt.md /code-review – Security + Qualitäts-Review
│ ├── debug.prompt.md /debug – Root-Cause-Analyse + Fix
│ ├── refactor.prompt.md /refactor – Refactoring ohne Behavior-Change
│ ├── write-tests.prompt.md /write-tests – Test-Generierung
│ ├── done-check.prompt.md /done-check – Definition of Done Checkliste
│ ├── docker.prompt.md /docker – Docker/Compose-Aufgaben
│ └── history.prompt.md /history – Agent-History loggen + Kontext aktualisieren
├── git-templates/ ← Wird via git config --global init.templateDir gesetzt
│ ├── .github/
│ │ └── copilot-instructions.md ← Template mit TODO-Feldern + Konventionen
│ ├── .vscode/
│ │ ├── settings.json
│ │ └── extensions.json
│ ├── hooks/
│ │ ├── pre-commit ← Agent Quality Gate (Tests + Doku-Check)
│ │ └── post-merge ← Opt-in: copilot-update nach git pull
│ ├── docs/
│ │ ├── USER.md ← Template: Endnutzer-Dokumentation
│ │ ├── ADMIN.md ← Template: Administrator-Dokumentation
│ │ └── MAINTAINER.md ← Template: Entwickler-Dokumentation
│ └── history/
│ └── summary/
│ └── PROJECT_CONTEXT.md ← Template: Agent-Kontext-Summary
├── docs/
│ ├── USER.md ← Benutzerhandbuch (Einrichtung + Nutzung)
│ ├── ADMIN.md ← Administrator-Handbuch (Deploy, Hooks, PATH)
│ └── MAINTAINER.md ← Architektur, Designentscheidungen, Erweiterung
└── scripts/
├── deploy.sh ← Deployment-Skript (bash, für macOS + Linux)
├── deploy.fish ← Deployment-Skript (fish, für Linux)
├── copilot-bootstrap.sh ← Einzelnes Repo ausstatten (POSIX sh, portabel)
├── copilot-bootstrap.fish ← Einzelnes Repo ausstatten (fish)
├── copilot-update.sh ← Templates + Hooks in allen Repos updaten (POSIX sh)
└── copilot-update.fish ← Templates + Hooks in allen Repos updaten (fish)
Architektur: 3-Schichten-Modell
┌─────────────────────────────────────────────────────────┐
│ Layer 1: Immer aktiv (User settings.json) │
│ • 9 Senior-Dev-Grundregeln in codeGeneration.instructions│
│ • Commit-Format, Review-Standard, Test-Standard │
│ • Copilot Feature-Flags │
├─────────────────────────────────────────────────────────┤
│ Layer 2: Auf Abruf (Prompt Files) │
│ • /requirements /architecture /new-feature │
│ • /code-review /debug /refactor │
│ • /write-tests /done-check /docker │
├─────────────────────────────────────────────────────────┤
│ Layer 3: Repo-spezifisch (.github/copilot-instructions) │
│ • Stack, Konventionen, ADR-Entscheidungen │
│ • Definition of Done für dieses Projekt │
│ • NFRs (Performance, Availability, Security) │
└─────────────────────────────────────────────────────────┘
Layer 1 gilt automatisch für jede Anfrage ohne Prompt-File.
Layer 2 wird per /prompt-name im Chat aufgerufen.
Layer 3 ist git-tracked, liegt im Repo und wird von Copilot automatisch geladen.
Was jedes Repo automatisch bekommt
Nach git init (via Alias) oder copilot-bootstrap.sh:
| Was | Wo |
|---|---|
| Copilot-Anweisungen + Konventionen | .github/copilot-instructions.md |
| VS Code-Einstellungen | .vscode/ |
| pre-commit Quality Gate | .git/hooks/pre-commit |
| Persistente Daten (gitignored) | data/ |
| Agent-Konversationen (committed) | history/prompts/ |
| Agent-Kontext-Summary (committed) | history/summary/PROJECT_CONTEXT.md |
| Endnutzer-Dokumentation | docs/USER.md |
| Administrator-Dokumentation | docs/ADMIN.md |
| Entwickler-Dokumentation | docs/MAINTAINER.md |
Prompt Files – Wann was verwenden
| Prompt | Aufruf | Wann verwenden |
|---|---|---|
requirements |
/requirements |
Vor dem Start – User Stories, ACs, NFRs erarbeiten |
architecture |
/architecture |
Bei nicht-trivialen Entscheidungen → ADR erstellen |
new-feature |
/new-feature |
Feature starten – alle 5 Phasen von Req bis Commit |
code-review |
/code-review |
Vor dem Merge – OWASP + Qualität + Performance |
debug |
/debug |
Bug analysieren – Root Cause, kein Symptom-Fix |
refactor |
/refactor |
Code verbessern ohne Behavior-Change |
write-tests |
/write-tests |
Test-Coverage-Lücken schließen |
done-check |
/done-check |
Abnahme-Check vor dem Merge (7-Punkte-Checkliste) |
docker |
/docker |
Docker/Compose analysieren, debuggen, erweitern |
history |
/history |
Agent-Session loggen + Kontext-Summary aktualisieren |
Neues Repo einrichten – Checkliste
Nach git init (mit eingerichtetem Alias) passiert alles automatisch.
Nach git clone oder ohne Alias:
# Option A: Bootstrap-Skript (empfohlen)
copilot-bootstrap.sh
# Option A+: Mit opt-in Auto-Update-Hook (copilot-update nach jedem git pull)
copilot-bootstrap.sh --with-update-hook
# Option B: Manuell
mkdir -p .github .vscode
cp ~/.git-templates/.github/copilot-instructions.md .github/
cp ~/.git-templates/.vscode/settings.json .vscode/
cp ~/.git-templates/.vscode/extensions.json .vscode/
Danach:
- TODO-Felder in
.github/copilot-instructions.mdausfüllen git copilot-update– stellt sicher dass alle Hooks auf dem neuesten Stand sind
→ Detaillierte Anleitungen: docs/USER.md | docs/MAINTAINER.md
.github/copilot-instructions.md ausfüllen
Die wichtigsten Felder:
## Project
[1-2 Sätze was das Projekt macht]
## Stack
- Language: TypeScript / Python / Go / ...
- Framework: Next.js / FastAPI / ...
- Database: PostgreSQL / Redis / ...
## Architecture
- Pattern: Hexagonal / MVC / Event-driven
- Key constraints: [z.B. "stateless services", "no ORM"]
## Conventions
- Branch: feat/<ticket>-description
- Commits: Conventional Commits
- Naming: camelCase functions, PascalCase classes
## Non-Functional Requirements
- Response time: <200ms p95
- Availability: 99.9%
Je mehr Kontext hier steht, desto besser arbeitet Copilot ohne Nachfragen.