rd13_copilot_setup/docs/history/summary/PROJECT_CONTEXT.md
Conrad Schulz 647c0f8b9e
Some checks are pending
CI / Lint & self-test (push) Waiting to run
docs(instructions): enforce shell-syntax rule to stop POSIX-in-fish errors
Passives Default-Shell-Feld reichte nicht: Agent tippte weiter POSIX (VAR=$(...)) in eine fish-Shell. Neue MANDATORY-Sektion 'Terminal-Syntax' in der Framework-Sektion beider copilot-instructions.md mit exaktem Fehlerbild und deterministischem Ausweg (nicht-triviale Logik in .sh mit Shebang, bash datei.sh). Memory-Notiz shell-syntax.md ergaenzt. History + PROJECT_CONTEXT aktualisiert.
2026-06-18 14:07:32 +02:00

9.5 KiB
Raw Blame History

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-18 Default-Shell-Feld eingeführt + lokal deployt; danach Terminal-Syntax-Regel als MANDATORY-Sektion gehärtet (Agent tippte trotz Feld POSIX in fish) + Memory-Notiz shell-syntax.md 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.

Für Repos mit einem Namen beginnend mit rd13_ gilt als allgemeine Infrastruktur-Annahme: Der Runner läuft in Docker, alle Services werden über Caddy als Proxy bereitgestellt und die zentrale Proxy-Schicht liegt im Repo rd13_system_proxy.

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-18 Terminal-Syntax-Regel gehärtet MANDATORY-Sektion „Terminal-Syntax" in Framework-Sektion beider copilot-instructions.md (exaktes fish-Fehlerbild + Script-Ausweg); Memory shell-syntax.md; Template redeployt Passives Feld reicht nicht → imperative Regel + deterministischer Ausweg (.sh mit Shebang) + auto-geladene Memory
2026-06-18 Default-Shell-Erkennung Bootstrap setzt $SHELL (Fallback fish) automatisch in copilot-instructions.md; Feld nach --- (überlebt update); selftest +3 Fälle; beide MAINTAINER.md dokumentiert; lokal deployt Feld in Projekt-Sektion, nicht Framework-Sektion; Whitelist ^[a-z0-9_-]+$ gegen sed-Injection
2026-06-13 rd13_-Infrastrukturkonvention Runner in Docker; alle Services hinter Caddy; zentrales Proxy-Repo rd13_system_proxy this session
2026-06-10 Agent-History → docs/history/ + Auto-Migration pre-commit Cutover, alle Skripte, settings/prompt/instructions/docs; git mv dieses Repos 2b20a98 + Dogfood
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
docs/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
Agent-History unter docs/history/ Aufgeräumte Struktur (alles Doku-Artefakte unter docs/); Cutover statt Dual-Pfad pre-commit, alle Skripte
Auto-Migration history/docs/history/ in copilot-update Bestehende Repos ziehen ohne manuellen Eingriff nach (git mv, Fallback mv) scripts/copilot-update.{sh,fish}
Default-Shell-Feld in Projekt-Sektion (nach ---) Bootstrap erkennt $SHELL; Wert überlebt copilot-update (Framework-Sektion wird neu geschrieben); manuell pro Repo/Maschine änderbar scripts/copilot-bootstrap.{sh,fish}, git-templates/.github/copilot-instructions.md

Wichtige Pfade & Konventionen

  • Requirements: docs/requirements/REQUIREMENTS.md (committed, immer aktuell halten!)
  • Persistente Daten: /data/ (gitignored, nie committen!)
  • Agent-Logs (voll): /docs/history/prompts/ (committed vollständige History bleibt erhalten)
  • Dieser Kontext: /docs/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: docs/history/prompts/YYYY-MM-DD_beschreibung_session.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