rd13_copilot_setup/history/summary/PROJECT_CONTEXT.md
Conrad Schulz be5ff0fda3 docs(history): session 2026-06-10 portability + update PROJECT_CONTEXT
Vollstaendiges Session-Log (WP1-7,11,12) und aktualisierter PROJECT_CONTEXT: neue erledigte Aufgaben, offene Punkte (WP8/9/10 zurueckgestellt, totes Repo-Remote), Designentscheidungen und Pfade.
2026-06-10 10:59:45 +02:00

110 lines
7.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.

# PROJECT_CONTEXT rd13_copilot_setup
> Diese Datei ist der **persistente Gedächtnis-Speicher** für alle Agenten.
> Beim Start jeder neuen Agent-Session: **diese Datei zuerst lesen**.
> Nach Abschluss einer Aufgabe: **diesen Stand aktualisieren**.
---
## Aktueller Projektstatus
**Letzte Aktualisierung:** 2026-06-10 Portabilität & Universalität (WP17, 11, 12): konfigurierbares/offline Remote, Opt-in `git init-copilot`, CI + selftest, Doku
**Phase:** Produktion / stabil wird bei Bedarf erweitert
---
## Was ist dieses Projekt?
Portierbare GitHub Copilot Workspace-Konfiguration. Einmal eingerichtet, stattet es
jedes neue oder bestehende Git-Repo automatisch mit Copilot-Instruktionen, VS Code-
Einstellungen, Dokumentations-Templates, Agent-History-Struktur und einem pre-commit
Quality Gate aus.
**Stack:** Shell (POSIX sh + fish), Markdown
**Deployment:** `bash scripts/deploy.sh` oder `fish scripts/deploy.fish` auf jedem neuen System
---
## Erledigte Aufgaben (neueste zuerst)
| Datum | Aufgabe | Ergebnis | Entscheidungen |
|---|---|---|---|
| 2026-06-10 | WP12 Doku-Portabilität | README/USER/ADMIN/MAINTAINER: env/config, init-copilot, offline; tote IP raus | `afd5b38` |
| 2026-06-10 | WP11 CI + selftest | `.github/workflows/ci.yml` (shellcheck+fish -n+selftest), `scripts/selftest.sh` | `deca872` |
| 2026-06-10 | WP6/7/4 deploy nicht-invasiv | kein globales init.templateDir/init-Alias; Opt-in init-copilot; post-merge nur mit Flag | `9e14a5f` |
| 2026-06-10 | WP3/5/4 update konfigurierbar/offline | Remote via env/config, graceful skip, portable Editor-Erkennung | `5890bff` |
| 2026-06-10 | WP1/2 bootstrap.fish Parität + ADS-Ignore | `$HOME` statt `/home/rd13server`; `*:Zone.Identifier` ignoriert | `80b6248` |
| 2026-06-02 | Konsistenzprüfung: alle --no-verify Referenzen entfernt | `docs/USER.md`, `docs/ADMIN.md`, `docs/MAINTAINER.md`, beide `copilot-instructions.md`, `pre-commit` Check-Nummerierung `[1/3]→[1/4]` | Opt-outs (.copilot-no-tests/.copilot-no-docs) als Ersatz für --no-verify in Doku |
| 2026-06-03 | Check 6 von Block → Warnung umgestellt | `git-templates/hooks/pre-commit` | Zu grob: heute-Prüfung blockiert Folgecommits; besser: Warnung wenn keine `*_session.md` im aktuellen Commit gestaged |
| 2026-06-02 | pre-commit Check 6 Session-Datei erforderlich | `git-templates/hooks/pre-commit` | Wurde als Block implementiert, am Folgetag als zu grob erkannt |
| 2026-06-02 | Review-Findings behoben (7 Punkte) | pre-commit, `.copilot-no-docs`, beide copilot-instructions.md, history.prompt.md, copilot-bootstrap.sh | `.copilot-no-docs` Opt-out; history.prompt.md Append-Verhalten korrekt |
| 2026-06-02 | copilot-update.sh + git alias + post-merge Hook | `scripts/copilot-update.sh`, `scripts/copilot-update.fish`, `git-templates/hooks/post-merge` | SSH+HTTP-Fallback; opt-in Update-Hook; copilot-instructions.md nur bei TODO überschreiben |
| 2026-05-31 | Bug fix: mkdir -p .git/hooks + eigenes Repo bootstrapped | `e1f912f` | |
| 2026-05-31 | history/prompts/ committed statt gitignored | `95d0360` | Vollständige History bleibt im Repo |
| 2026-05-30 | Initiale Erweiterungen: data/, history/, hooks, 3-Zielgruppen-Docs | `045e2e7` | Nur data/ gitignored |
| 2026-05-30 | Remote origin gesetzt + initial push | `ssh://git@192.168.178.6:2222/cschulz/rd13_copilot_setup.git` | |
---
## Offene Aufgaben & bekannte Probleme
- [ ] `docs/requirements/REQUIREMENTS.md` für dieses Setup-Repo selbst anlegen (aktuell nur Template in git-templates)
- [ ] `.github/copilot-instructions.md` TODO-Felder ausfüllen (Stack, Architecture, NFRs dieses Repos)
- [ ] Bei Änderungen an `git-templates/` immer `deploy.sh` neu ausführen (oder `git copilot-update` testen)
- [ ] **WP8/WP9** (settings.json: Absolute-Mode-Widerspruch entschärfen + non-destruktiver Merge) zurückgestellt, mit Nutzer besprechen
- [ ] **WP10** (Vendor-neutrale Namen rd13/cschulz/rd13server) zurückgestellt
- [ ] Remote **dieses** Repos zeigt auf tote IP `192.168.178.6` bewusst offen (separate Entscheidung)
---
## Kritische Architekturentscheidungen
| Entscheidung | Begründung | Wo dokumentiert |
|---|---|---|
| `copilot-update.sh` mit SSH+HTTP-Fallback | Funktioniert ohne SSH-Key-Setup auf neuen Maschinen | `scripts/copilot-update.sh` |
| `copilot-instructions.md` nur bei TODO überschreiben | User-Content bleibt erhalten; Backup `.bak` wird erstellt | `scripts/copilot-update.sh` |
| post-merge Hook in bootstrapped Repos: opt-in | Kein Overhead bei jedem `git pull` in anderen Repos | `scripts/copilot-bootstrap.sh --with-update-hook` |
| Setup-Repo selbst: post-merge Hook auto-installed | `deploy.sh` nach jedem `git pull` auf Setup-Repo | `scripts/deploy.sh` Block 7 |
| `history/prompts/` committed | Lückenlose Projekt-History im Repo | `docs/MAINTAINER.md` |
| `data/` gitignored | Persistente Daten: Größe + Sicherheit | `docs/ADMIN.md` |
| POSIX sh für Bootstrap | Läuft überall ohne Abhängigkeiten | `docs/MAINTAINER.md` |
| Git-Alias statt Fish-Wrapper | Portabel: bash, sh, CI, GUI-Clients | `docs/MAINTAINER.md` |
| `.copilot-no-tests` + `.copilot-no-docs` Opt-outs | Pre-commit Check 1 (Tests) und Check 2 (Doku) deaktivierbar für Repos ohne Framework/Doku-Pflicht | `git-templates/hooks/pre-commit` |
| Kein `--no-verify` nirgendwo | Quality Gate darf nie umgangen werden; in `copilot-instructions.md` verboten, pre-commit enthält keinen Bypass-Hinweis | `git-templates/hooks/pre-commit`, `.github/copilot-instructions.md` |
| Kein globales `init.templateDir`, Opt-in `git init-copilot` | Standard-`git init`/`clone` unberührt; Quality Gate nur in gewählten Repos | `scripts/deploy.{sh,fish}` |
| Remote konfigurierbar (env/Config) + Offline-Modus | Keine hartkodierte Infrastruktur; läuft ohne Netz, graceful skip (exit 0) | `scripts/copilot-update.{sh,fish}` |
| `detect_vscode_user_dir` dupliziert statt geteilt | Skripte laufen standalone aus `~/.local/bin` → keine sourcebare Lib | alle 4 Skripte |
| CI: shellcheck + fish -n + selftest | Verhindert Regressionen in den Shell-Skripten | `.github/workflows/ci.yml`, `scripts/selftest.sh` |
---
## Wichtige Pfade & Konventionen
- **Requirements:** `docs/requirements/REQUIREMENTS.md` (committed, immer aktuell halten!)
- **Persistente Daten:** `/data/` (gitignored, nie committen!)
- **Agent-Logs (voll):** `/history/prompts/` (committed vollständige History bleibt erhalten)
- **Dieser Kontext:** `/history/summary/PROJECT_CONTEXT.md` (committed)
- **Deploy:** `bash scripts/deploy.sh` oder `fish scripts/deploy.fish`
- **Bootstrap einzelnes Repo:** `sh ~/.local/bin/copilot-bootstrap.sh [/pfad/zum/repo]`
- **Bootstrap mit Auto-Update-Hook:** `sh ~/.local/bin/copilot-bootstrap.sh --with-update-hook [/pfad]`
- **Templates updaten (global + repo-lokal):** `git copilot-update` (in jedem Repo)
- **Setup-Quelle:** `COPILOT_SETUP_REMOTE_SSH/_HTTP` oder `COPILOT_SETUP_DIR` (Config: `~/.config/copilot-setup/config`); Cache `~/.copilot-setup/`
- **Git-Templates:** `~/.git-templates/` (nach Deploy)
- **Prompts:** `~/.vscode-server/data/User/prompts/` (nach Deploy)
---
## Für den nächsten Agenten: Startpunkt
1. Diese Datei gelesen? Gut du kennst den Stand.
2. Neues Feature → `git-templates/` anpassen → `deploy.sh` ausführen → committen
3. Nach jeder Session: `history/prompts/YYYY-MM-DD_beschreibung.md` anlegen + diese Datei aktualisieren
---
## Bekannte Fallstricke / "Don't do this"
- `deploy.sh` nach jeder Änderung an `git-templates/` neu ausführen sonst sind die lokalen Templates veraltet
- Beim Bootstrap neuer Repos ohne `hooks/`-Verzeichnis: `mkdir -p .git/hooks/` ist jetzt im Script (war Bug)
- `deploy.sh` skippt vorhandene Prompt-Dateien neue Prompts werden aber korrekt hinzugefügt