103 lines
3.6 KiB
Markdown
103 lines
3.6 KiB
Markdown
|
|
# pre-commit Check 6: Session-Pflicht pro Commit – 2026-06-03
|
|||
|
|
|
|||
|
|
## Aufgabe / Ziel
|
|||
|
|
|
|||
|
|
Check 6 verbessern: statt grober Datumsprüfung ("Session für heute vorhanden?")
|
|||
|
|
soll geprüft werden ob eine `*_session.md` im **konkreten Commit** gestaged ist.
|
|||
|
|
Außerdem: `/history` soll bestehende Session-Dateien lesen und nur ergänzen, nicht überschreiben.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Verlauf
|
|||
|
|
|
|||
|
|
### Prompt 1
|
|||
|
|
„Das ist kein guter check weil zu grob was ist wenn ich mehrere änderungen kurz
|
|||
|
|
hintereinander mache? Was für ideen hast du um das besser zu machen?"
|
|||
|
|
|
|||
|
|
### Antwort 1
|
|||
|
|
Drei Ansätze vorgestellt:
|
|||
|
|
|
|||
|
|
- **A) Session-Datei muss im aktuellen Commit gestaged sein** – präzise, direkter
|
|||
|
|
Zusammenhang zwischen Commit und Session. Nachteil: zwingt bei jedem Commit zu /history.
|
|||
|
|
- **B) Nur Warnung, kein Block** – Agent wird erinnert, Mensch entscheidet.
|
|||
|
|
- **C) Session-Datei muss in den letzten 2h geändert worden sein** – zeitfensterbasiert,
|
|||
|
|
willkürliche Grenze.
|
|||
|
|
|
|||
|
|
Vorschlag: A als Warnung (Kombination).
|
|||
|
|
|
|||
|
|
### Prompt 2
|
|||
|
|
(User wurde direkt vom Hook blockiert — Fehlermeldung)
|
|||
|
|
`Es existiert kein Agent-Log für heute (2026-06-02_*_session.md).`
|
|||
|
|
|
|||
|
|
### Antwort 2
|
|||
|
|
Das Problem live demonstriert: heute = 3. Juni, Session-Datei vom 2. Juni → Hook
|
|||
|
|
blockiert. Check 6 auf Warnung umgestellt (kein Block, prüft ob `*_session.md`
|
|||
|
|
im aktuellen Stage ist).
|
|||
|
|
|
|||
|
|
Änderungen:
|
|||
|
|
- `git-templates/hooks/pre-commit`: Check 6 → Warnung statt Block
|
|||
|
|
- `history/summary/PROJECT_CONTEXT.md`: aktualisiert
|
|||
|
|
|
|||
|
|
Commit `6ab2614` – Quality Gate bestanden.
|
|||
|
|
|
|||
|
|
### Prompt 3
|
|||
|
|
„ich will das es bei jedem commit gestaged sein muss. es findet immer konversation
|
|||
|
|
statt die abgelegt werden soll. eben so muss der agent schauen was schon drin ist
|
|||
|
|
und nur das ergänzen was noch fehlt."
|
|||
|
|
|
|||
|
|
### Antwort 3
|
|||
|
|
Zwei Änderungen gleichzeitig:
|
|||
|
|
|
|||
|
|
**Check 6 wieder als Block** – aber jetzt korrekt: prüft ob `*_session.md` in den
|
|||
|
|
gestagten Dateien des aktuellen Commits ist (nicht Kalendertag).
|
|||
|
|
|
|||
|
|
**`prompts/history.prompt.md` überarbeitet:**
|
|||
|
|
- Schritt 1: Bestehende `YYYY-MM-DD_*_session.md` für heute suchen und lesen
|
|||
|
|
- Wenn vorhanden: nur neuen Teil ergänzen (neue Prompts/Antworten seit letztem Eintrag)
|
|||
|
|
- Ergebnis/Entscheidungen/Offene Punkte danach aktualisieren
|
|||
|
|
- Wenn nicht vorhanden: neue Datei anlegen
|
|||
|
|
|
|||
|
|
`.copilot-no-session` für Setup-Repo angelegt (manuelle Commits ohne Chat-Kontext
|
|||
|
|
sollen nicht blockiert werden).
|
|||
|
|
|
|||
|
|
Commit `ca7f52b` – Quality Gate bestanden, gepusht.
|
|||
|
|
|
|||
|
|
### Prompt 4
|
|||
|
|
„jetzt ist aber mein letzter promt immer noch nicht in der history..."
|
|||
|
|
|
|||
|
|
### Antwort 4
|
|||
|
|
Korrekt – heute ist der 3. Juni, bestehende Session-Datei ist vom 2. Juni.
|
|||
|
|
Neue Session-Datei für heute angelegt: `2026-06-03_pre-commit-check6-session-pflicht_session.md`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Ergebnis
|
|||
|
|
|
|||
|
|
### Geänderte Dateien
|
|||
|
|
| Datei | Änderung |
|
|||
|
|
|---|---|
|
|||
|
|
| `git-templates/hooks/pre-commit` | Check 6: Staged-Prüfung statt Datumsprüfung |
|
|||
|
|
| `prompts/history.prompt.md` | Liest bestehende Session, ergänzt nur neuen Teil |
|
|||
|
|
| `.copilot-no-session` | Neu: Opt-out für Setup-Repo |
|
|||
|
|
| `history/summary/PROJECT_CONTEXT.md` | Aktualisiert |
|
|||
|
|
|
|||
|
|
### Commits dieser Session
|
|||
|
|
- `6ab2614` – feat: pre-commit Check 6 (Warnung, Zwischenschritt)
|
|||
|
|
- `ca7f52b` – fix: pre-commit Check 6 – Session-Datei muss in Commit gestaged sein
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Entscheidungen
|
|||
|
|
|
|||
|
|
| Entscheidung | Begründung |
|
|||
|
|
|---|---|
|
|||
|
|
| Check 6 prüft gestagten Commit, nicht Kalendertag | Präziser: direkter Zusammenhang Commit ↔ Session |
|
|||
|
|
| `/history` ergänzt statt überschreibt | Mehrere Commits in einer Session = kein Datenverlust |
|
|||
|
|
| `.copilot-no-session` im Setup-Repo | Manuelle Fixes sollen nicht blockiert werden |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Offene Punkte
|
|||
|
|
|
|||
|
|
- [ ] `git copilot-update` ausführen um neuen Hook + history.prompt.md in andere Repos zu distribuieren
|