rd13_copilot_setup/README.md
Conrad Schulz eb19cf7e99 fix: --no-verify komplett entfernt aus pre-commit + .copilot-no-tests
- pre-commit: alle --no-verify Hinweise aus Fehlermeldungen entfernt
- pre-commit: .copilot-no-tests Opt-out fuer Repos ohne Test-Framework (Check 1)
- .copilot-no-tests angelegt: dieses Setup-Repo hat kein Test-Framework
- copilot-instructions.md: no-verify + force-push explizit verboten
- README: Templates-Update Sektion + neue Scripts dokumentiert
2026-06-02 10:54:08 +00:00

252 lines
11 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** 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:
```bash
git copilot-update
```
Was das macht:
1. **Setup-Repo pullen** `~/.copilot-setup/` (SSH, HTTP-Fallback zu `http://192.168.178.6:8083/cschulz/rd13_copilot_setup`)
2. **Globale Templates updaten** `~/.git-templates/` + VS Code Prompt-Dateien
3. **Repo-lokale Hooks updaten** `.git/hooks/pre-commit` + `post-commit`
4. **`copilot-instructions.md`** nur überschreiben wenn noch TODO-Platzhalter enthalten (Backup `.bak` wird angelegt)
> **Empfehlung:** In jedem Repo nach einem `git pull` auf 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:
```bash
git pull # im Setup-Repo → deploy.sh läuft automatisch → alle Templates sofort aktuell
```
### Opt-in: Auto-Update in anderen Repos nach git pull
```bash
copilot-bootstrap.sh --with-update-hook /pfad/zum/repo
# → installiert post-merge Hook: git pull → git copilot-update
```
---
## 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
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-commit ← Automatischer History-Log nach jedem Commit
│ │ └── 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` |
| **post-commit History-Log** | `.git/hooks/post-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:
```bash
# 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:
1. TODO-Felder in `.github/copilot-instructions.md` ausfüllen
2. `git copilot-update` stellt sicher dass alle Hooks auf dem neuesten Stand sind
→ Detaillierte Anleitungen: [docs/USER.md](docs/USER.md) | [docs/MAINTAINER.md](docs/MAINTAINER.md)
---
## .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.