rd13_copilot_setup/README.md
Conrad Schulz 045e2e7202 feat: add data/, history/, 3-target-group docs, pre-commit quality gate
- New repo convention: /data/<service>/ for all persistent service data (gitignored)
- New repo convention: /history/prompts/ (gitignored) + /history/summary/PROJECT_CONTEXT.md
  for agent session logging and compressed project context
- git-templates/hooks/pre-commit: quality gate checking tests + docs on every commit
- git-templates/docs/: USER.md, ADMIN.md, MAINTAINER.md templates (3 target groups)
- git-templates/history/summary/PROJECT_CONTEXT.md: agent context template
- prompts/history.prompt.md: /history prompt for logging sessions + updating summary
- copilot-bootstrap.sh: creates all new folders, .gitignore entries, installs hook
- deploy.sh + deploy.fish: deploy hooks, doc templates, history template
- docs/ADMIN.md: new admin handbook for this project
- docs/USER.md + docs/MAINTAINER.md: updated with new conventions
- git-templates/.github/copilot-instructions.md: extended DoD + new conventions
- README.md: updated structure overview + prompt table
2026-05-30 17:19:52 +00:00

204 lines
8.6 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` (per Git-Alias)
- **Bootstrap-Skript** bestehende und geclonte Repos in Sekunden ausstatten (POSIX sh, läuft überall)
---
## 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/ 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
│ └── 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)
│ ├── 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, legacy)
```
---
## 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 (gitignored)** | `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 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.md` ausfüllen.
→ 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.