fix: history/prompts/ is committed, not gitignored

Full agent conversation history is preserved in git.
Only data/ remains gitignored (persistent service data).
This commit is contained in:
Conrad Schulz 2026-05-31 12:51:15 +00:00
parent 045e2e7202
commit 95d03603cf
9 changed files with 17 additions and 20 deletions

View file

@ -126,7 +126,7 @@ Nach `git init` (via Alias) oder `copilot-bootstrap.sh`:
| VS Code-Einstellungen | `.vscode/` | | VS Code-Einstellungen | `.vscode/` |
| **pre-commit Quality Gate** | `.git/hooks/pre-commit` | | **pre-commit Quality Gate** | `.git/hooks/pre-commit` |
| **Persistente Daten (gitignored)** | `data/` | | **Persistente Daten (gitignored)** | `data/` |
| **Agent-Konversationen (gitignored)** | `history/prompts/` | | **Agent-Konversationen (committed)** | `history/prompts/` |
| **Agent-Kontext-Summary (committed)** | `history/summary/PROJECT_CONTEXT.md` | | **Agent-Kontext-Summary (committed)** | `history/summary/PROJECT_CONTEXT.md` |
| **Endnutzer-Dokumentation** | `docs/USER.md` | | **Endnutzer-Dokumentation** | `docs/USER.md` |
| **Administrator-Dokumentation** | `docs/ADMIN.md` | | **Administrator-Dokumentation** | `docs/ADMIN.md` |

View file

@ -98,10 +98,10 @@ Das Bootstrap-Skript legt idempotent an:
- `.github/copilot-instructions.md` - `.github/copilot-instructions.md`
- `.vscode/settings.json` + `.vscode/extensions.json` - `.vscode/settings.json` + `.vscode/extensions.json`
- `data/` (gitignored) - `data/` (gitignored)
- `history/prompts/` (gitignored) + `history/summary/PROJECT_CONTEXT.md` - `history/prompts/` (committed) + `history/summary/PROJECT_CONTEXT.md`
- `docs/USER.md`, `docs/ADMIN.md`, `docs/MAINTAINER.md` - `docs/USER.md`, `docs/ADMIN.md`, `docs/MAINTAINER.md`
- `.git/hooks/pre-commit` - `.git/hooks/pre-commit`
- `.gitignore`-Einträge für `data/**/*` und `history/prompts/*` - `.gitignore`-Einträge für `data/**/*`
--- ---

View file

@ -120,5 +120,5 @@ Dateien unter `git-templates/` bearbeiten → `deploy.sh` ausführen → neue Re
| Templates nicht auto-updaten | Idempotenz: Bootstrap überschreibt nie Nutzer können Templates nach Init anpassen | | Templates nicht auto-updaten | Idempotenz: Bootstrap überschreibt nie Nutzer können Templates nach Init anpassen |
| 3 Zielgruppen-Docs (USER/ADMIN/MAINTAINER) | Klare Trennung: Nutzer ≠ Ops ≠ Dev; jede Gruppe findet ihren Kontext direkt | | 3 Zielgruppen-Docs (USER/ADMIN/MAINTAINER) | Klare Trennung: Nutzer ≠ Ops ≠ Dev; jede Gruppe findet ihren Kontext direkt |
| `data/` gitignored, Ordner-Struktur tracked | Persistente Daten gehören nie ins Git; Struktur als Konvention dokumentiert | | `data/` gitignored, Ordner-Struktur tracked | Persistente Daten gehören nie ins Git; Struktur als Konvention dokumentiert |
| `history/prompts/` gitignored | Agent-Logs können groß und vertraulich sein; nur der komprimierte Kontext (summary) wird committed | | `history/prompts/` committed | Vollständige Agent-History bleibt im Repo erhalten; ermöglicht lückenlose Nachvollziehbarkeit |
| pre-commit Hook als Quality Gate | Automatisches Netz verhindert dass Tests/Doku vergessen werden; `--no-verify` bleibt als bewusstes Escape-Valve | | pre-commit Hook als Quality Gate | Automatisches Netz verhindert dass Tests/Doku vergessen werden; `--no-verify` bleibt als bewusstes Escape-Valve |

View file

@ -91,7 +91,7 @@ Nach `git init` oder `copilot-bootstrap.sh` erhält jedes Repo automatisch:
| VS Code-Einstellungen | `.vscode/settings.json` | Repo-spezifische Editor-Konfiguration | | VS Code-Einstellungen | `.vscode/settings.json` | Repo-spezifische Editor-Konfiguration |
| Empfohlene Extensions | `.vscode/extensions.json` | Extension-Vorschläge für das Team | | Empfohlene Extensions | `.vscode/extensions.json` | Extension-Vorschläge für das Team |
| Persistente Daten | `data/` | Service-Daten getrennt nach Service-Namen | | Persistente Daten | `data/` | Service-Daten getrennt nach Service-Namen |
| Agent-Logs | `history/prompts/` | Vollständige Konversationen (gitignored) | | Agent-Logs | `history/prompts/` | Vollständige Konversationen (committed) |
| Agent-Kontext | `history/summary/PROJECT_CONTEXT.md` | Komprimierter Projektzustand für Agenten | | Agent-Kontext | `history/summary/PROJECT_CONTEXT.md` | Komprimierter Projektzustand für Agenten |
| Nutzer-Doku | `docs/USER.md` | Dokumentation für Endnutzer | | Nutzer-Doku | `docs/USER.md` | Dokumentation für Endnutzer |
| Admin-Doku | `docs/ADMIN.md` | Dokumentation für Administratoren | | Admin-Doku | `docs/ADMIN.md` | Dokumentation für Administratoren |

View file

@ -25,10 +25,10 @@
- Erforderliche Unterordner in `docs/ADMIN.md` dokumentieren - Erforderliche Unterordner in `docs/ADMIN.md` dokumentieren
### Agent History (`/history/`) ### Agent History (`/history/`)
- **Vollständige Konversationen**`history/prompts/YYYY-MM-DD_beschreibung.md` (gitignored) - **Vollständige Konversationen**`history/prompts/YYYY-MM-DD_beschreibung.md` (**committed vollständige History bleibt erhalten**)
- **Komprimierter Kontext**`history/summary/PROJECT_CONTEXT.md` (**committed, immer aktuell halten!**) - **Komprimierter Kontext**`history/summary/PROJECT_CONTEXT.md` (**committed, immer aktuell halten!**)
- **Beim Start einer neuen Session:** `history/summary/PROJECT_CONTEXT.md` zuerst lesen - **Beim Start einer neuen Session:** `history/summary/PROJECT_CONTEXT.md` zuerst lesen
- **Am Ende jeder Session:** `PROJECT_CONTEXT.md` aktualisieren und committen - **Am Ende jeder Session:** beide Dateien committen
- Copilot Chat: `/history` → History loggen + Summary aktualisieren - Copilot Chat: `/history` → History loggen + Summary aktualisieren
### Documentation (3 Zielgruppen alle 3 müssen existieren) ### Documentation (3 Zielgruppen alle 3 müssen existieren)

View file

@ -81,7 +81,7 @@ ADR-Dateien liegen unter `docs/adr/`. Format: `NNN-titel.md`.
Der Agent liest beim Start immer `history/summary/PROJECT_CONTEXT.md`. Der Agent liest beim Start immer `history/summary/PROJECT_CONTEXT.md`.
Nach Abschluss einer Aufgabe wird dort der Projektzustand aktualisiert. Nach Abschluss einer Aufgabe wird dort der Projektzustand aktualisiert.
- Vollständige Konversationen: `history/prompts/` (gitignored, lokal) - Vollständige Konversationen: `history/prompts/` (committed History bleibt vollständig erhalten)
- Komprimierter Kontext: `history/summary/PROJECT_CONTEXT.md` (committed) - Komprimierter Kontext: `history/summary/PROJECT_CONTEXT.md` (committed)
--- ---

View file

@ -54,7 +54,7 @@
## Wichtige Pfade & Konventionen ## Wichtige Pfade & Konventionen
- **Persistente Daten:** `/data/<service>/` (gitignored, nie committen!) - **Persistente Daten:** `/data/<service>/` (gitignored, nie committen!)
- **Agent-Logs (voll):** `/history/prompts/` (gitignored, lokal) - **Agent-Logs (voll):** `/history/prompts/` (committed vollständige History im Repo)
- **Dieser Kontext:** `/history/summary/PROJECT_CONTEXT.md` (committed) - **Dieser Kontext:** `/history/summary/PROJECT_CONTEXT.md` (committed)
- **Tests:** `tests/` (Struktur spiegelt Source) - **Tests:** `tests/` (Struktur spiegelt Source)
- **Docs:** `docs/USER.md` | `docs/ADMIN.md` | `docs/MAINTAINER.md` - **Docs:** `docs/USER.md` | `docs/ADMIN.md` | `docs/MAINTAINER.md`

View file

@ -64,6 +64,6 @@ lesen muss um sofort produktiv zu sein.
Nach Abschluss dieser Aufgabe: Nach Abschluss dieser Aufgabe:
```bash ```bash
git add history/summary/PROJECT_CONTEXT.md git add history/
# history/prompts/ ist gitignored kein add nötig git commit -m "docs: update agent history and project context"
``` ```

View file

@ -56,8 +56,7 @@ fi
# ── history/ Agent-History und Kontext-Summary ───────────────────────────── # ── history/ Agent-History und Kontext-Summary ─────────────────────────────
if [ ! -d "$TARGET/history/prompts" ]; then if [ ! -d "$TARGET/history/prompts" ]; then
mkdir -p "$TARGET/history/prompts" mkdir -p "$TARGET/history/prompts"
touch "$TARGET/history/prompts/.gitkeep" echo " ✓ history/prompts/ created (Agent-Logs committed)"
echo " ✓ history/prompts/ created (Agent-Logs gitignored)"
fi fi
if [ ! -f "$TARGET/history/summary/PROJECT_CONTEXT.md" ]; then if [ ! -f "$TARGET/history/summary/PROJECT_CONTEXT.md" ]; then
mkdir -p "$TARGET/history/summary" mkdir -p "$TARGET/history/summary"
@ -95,7 +94,7 @@ else
echo " ─ .git/hooks/pre-commit already exists, skipping" echo " ─ .git/hooks/pre-commit already exists, skipping"
fi fi
# ── .gitignore data/ und history/prompts/ ausschließen ───────────────────── # ── .gitignore data/ ausschließen ─────────────────────────────────────────
GITIGNORE="$TARGET/.gitignore" GITIGNORE="$TARGET/.gitignore"
GITIGNORE_UPDATED=0 GITIGNORE_UPDATED=0
@ -108,11 +107,9 @@ _append_gitignore() {
_append_gitignore "data/**/*" "# Persistente Service-Daten (nie committen!)" _append_gitignore "data/**/*" "# Persistente Service-Daten (nie committen!)"
_append_gitignore "!data/.gitkeep" "" _append_gitignore "!data/.gitkeep" ""
_append_gitignore "history/prompts/*" "# Agent-Konversations-Logs (zu groß / zu roh für Git)"
_append_gitignore "!history/prompts/.gitkeep" ""
if [ "$GITIGNORE_UPDATED" -eq 1 ]; then if [ "$GITIGNORE_UPDATED" -eq 1 ]; then
echo " ✓ .gitignore aktualisiert (data/, history/prompts/ excluded)" echo " ✓ .gitignore aktualisiert (data/ excluded)"
else else
echo " ─ .gitignore already has required entries, skipping" echo " ─ .gitignore already has required entries, skipping"
fi fi
@ -123,5 +120,5 @@ echo " 1. TODO-Felder ausfüllen:"
echo " - .github/copilot-instructions.md" echo " - .github/copilot-instructions.md"
echo " - history/summary/PROJECT_CONTEXT.md" echo " - history/summary/PROJECT_CONTEXT.md"
echo " - docs/USER.md, docs/ADMIN.md, docs/MAINTAINER.md" echo " - docs/USER.md, docs/ADMIN.md, docs/MAINTAINER.md"
echo " 2. git add .github .vscode docs history/summary .gitignore" echo " 2. git add .github .vscode docs history .gitignore"
echo " git commit -m 'chore: add copilot workspace config'" echo " git commit -m 'chore: add copilot workspace config'"