rd13_copilot_setup/README.md
Conrad Schulz 9838c7a0b3 feat: initial copilot workspace setup
- User settings.json with 9 senior-dev behavior rules
- 9 prompt files: requirements, architecture, new-feature, code-review,
  debug, refactor, write-tests, done-check, docker
- git-templates for .github/ and .vscode/ auto-copy on git init
- deploy.sh (macOS/bash) and deploy.fish (Linux/fish) scripts
- copilot-bootstrap.fish for existing/cloned repos
2026-05-29 08:19:50 +00:00

166 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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** 9 wiederverwendbare Agent-Workflows (`/requirements`, `/new-feature`, `/architecture`, etc.)
- **Git-Templates** automatisch in jedes neue Repo kopiert via `git init`
- **Bootstrap-Skript** bestehende und geclonte Repos in Sekunden ausstatten
---
## Schnellstart
### Ersteinrichtung (Linux / macOS)
```bash
# 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
```bash
cd /path/to/existing-repo
fish ~/.local/bin/copilot-bootstrap.fish
# → legt .github/copilot-instructions.md + .vscode/ an, überschreibt nichts
```
### 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
├── git-templates/ ← Wird via git config --global init.templateDir gesetzt
│ ├── .github/
│ │ └── copilot-instructions.md ← Template mit TODO-Feldern
│ └── .vscode/
│ ├── settings.json
│ └── extensions.json
└── scripts/
├── deploy.sh ← Deployment-Skript (bash, für macOS)
├── deploy.fish ← Deployment-Skript (fish, für Linux)
└── copilot-bootstrap.fish ← Einzelnes Repo ausstatten
```
---
## 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.
---
## 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 |
---
## Neues Repo einrichten Checkliste
Nach `git clone` oder `git init`:
```bash
# Option A: Bootstrap-Skript (empfohlen)
fish ~/.local/bin/copilot-bootstrap.fish
# Option B: Manuell
mkdir -p .github .vscode
cp ~/dotfiles/copilot-setup/git-templates/.github/copilot-instructions.md .github/
cp ~/dotfiles/copilot-setup/git-templates/.vscode/settings.json .vscode/
cp ~/dotfiles/copilot-setup/git-templates/.vscode/extensions.json .vscode/
```
Danach: TODO-Felder in `.github/copilot-instructions.md` ausfüllen.
---
## .github/copilot-instructions.md ausfüllen
Die wichtigsten Felder:
```markdown
## 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.