feat: Check 6 Inhaltspruefung + copilot-instructions Prompt-Format-Pflicht

- pre-commit Hook Check 6: prueft jetzt Datum im Dateinamen + mind. 1 ### Prompt-Eintrag
- .github/copilot-instructions.md: Session END Schritt 2 mit Format-Template + Nachtrag-Warnung
- git-templates/.github/copilot-instructions.md: dasselbe
This commit is contained in:
Conrad Schulz 2026-06-03 09:37:50 +00:00
parent ebaab63116
commit 411b7b0a29
5 changed files with 83 additions and 11 deletions

View file

@ -10,11 +10,22 @@
**Session END** Der Agent führt dies **automatisch** am Ende jeder Aufgabe aus, bevor er `git commit` ausführt:
1. Lies die bestehende `history/prompts/YYYY-MM-DD_*_session.md` (falls vorhanden) und ergänze nur den neuen Teil
**Dateiformat zwingend:** Suffix `_session.md`
2. Aktualisiere `history/summary/PROJECT_CONTEXT.md` mit dem neuen Projektstand
3. **Stage beide Dateien VOR `git commit`:** `git add history/`
Der pre-commit Hook (Check 6) blockiert wenn keine `*_session.md` gestaged ist.
Kein Opt-out möglich jeder Commit braucht eine Session-Datei.
**Dateiformat zwingend:** Suffix `_session.md`, Dateiname beginnt mit heutigem Datum (`YYYY-MM-DD`)
2. **Für jeden Benutzer-Prompt seit dem letzten Commit** einen Block ergänzen:
```
### Prompt N
«wörtlicher Benutzertext»
### Antwort N
«Zusammenfassung der Agent-Antwort + relevante Commits/Dateien»
```
⚠ Kein „Nachtrag"-Block statt echter Prompt-Einträge. Die Benutzer-Nachricht **wörtlich** zitieren.
3. Aktualisiere `history/summary/PROJECT_CONTEXT.md` mit dem neuen Projektstand
4. **Stage beide Dateien VOR `git commit`:** `git add history/`
Der pre-commit Hook (Check 6) blockiert wenn:
- keine `*_session.md` gestaged ist
- der Dateiname nicht mit dem heutigen Datum beginnt
- die Datei keinen einzigen `### Prompt`-Eintrag enthält
> Kein Bypass. Kein Vergessen. Kein "mache ich beim nächsten Mal".
> Die History ist das Gedächtnis des Projekts.

View file

@ -10,11 +10,22 @@
**Session END** Der Agent führt dies **automatisch** am Ende jeder Aufgabe aus, bevor er `git commit` ausführt:
1. Lies die bestehende `history/prompts/YYYY-MM-DD_*_session.md` (falls vorhanden) und ergänze nur den neuen Teil
**Dateiformat zwingend:** Suffix `_session.md`
2. Aktualisiere `history/summary/PROJECT_CONTEXT.md` mit dem neuen Projektstand
3. **Stage beide Dateien VOR `git commit`:** `git add history/`
Der pre-commit Hook (Check 6) blockiert wenn keine `*_session.md` gestaged ist.
Kein Opt-out möglich jeder Commit braucht eine Session-Datei.
**Dateiformat zwingend:** Suffix `_session.md`, Dateiname beginnt mit heutigem Datum (`YYYY-MM-DD`)
2. **Für jeden Benutzer-Prompt seit dem letzten Commit** einen Block ergänzen:
```
### Prompt N
«wörtlicher Benutzertext»
### Antwort N
«Zusammenfassung der Agent-Antwort + relevante Commits/Dateien»
```
⚠ Kein „Nachtrag"-Block statt echter Prompt-Einträge. Die Benutzer-Nachricht **wörtlich** zitieren.
3. Aktualisiere `history/summary/PROJECT_CONTEXT.md` mit dem neuen Projektstand
4. **Stage beide Dateien VOR `git commit`:** `git add history/`
Der pre-commit Hook (Check 6) blockiert wenn:
- keine `*_session.md` gestaged ist
- der Dateiname nicht mit dem heutigen Datum beginnt
- die Datei keinen einzigen `### Prompt`-Eintrag enthält
> Kein Bypass. Kein Vergessen. Kein "mache ich beim nächsten Mal".
> Die History ist das Gedächtnis des Projekts.

View file

@ -135,6 +135,38 @@ if [ -d "history/prompts" ] && [ ! -f ".copilot-no-session" ]; then
echo " → Kein Chat-Kontext (z.B. CI/manuell)? Opt-out anlegen:"
echo " touch .copilot-no-session && git add .copilot-no-session"
ERRORS=$((ERRORS + 1))
else
# Dateiname muss heutiges Datum enthalten (YYYY-MM-DD)
TODAY=$(date +%Y-%m-%d)
SESSION_DATE=$(basename "$SESSION_STAGED" | grep -o '^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}')
if [ "$SESSION_DATE" != "$TODAY" ]; then
echo ""
echo "✗ AGENT QUALITY GATE [6/6]: Session-Datei hat nicht das heutige Datum"
echo " Gestagt: $SESSION_STAGED"
echo " Erwartet: Dateiname beginnt mit $TODAY"
echo ""
echo " → Neue Session-Datei für heute anlegen: history/prompts/${TODAY}_beschreibung_session.md"
ERRORS=$((ERRORS + 1))
else
# Datei muss mindestens einen ### Prompt-Eintrag enthalten
# (verhindert reine 'Nachtrag'-Blöcke ohne echte Prompt-Dokumentation)
SESSION_FILE_CONTENT=$(git show ":$SESSION_STAGED" 2>/dev/null)
PROMPT_COUNT=$(printf '%s\n' "$SESSION_FILE_CONTENT" | grep -c '^### Prompt')
if [ "$PROMPT_COUNT" -eq 0 ]; then
echo ""
echo "✗ AGENT QUALITY GATE [6/6]: Session-Datei enthält keine '### Prompt'-Einträge"
echo " Gestagt: $SESSION_STAGED"
echo ""
echo " Jede Session-Datei muss die Benutzer-Prompts im Format:"
echo " ### Prompt N"
echo " «wörtlicher Benutzertext»"
echo " ### Antwort N"
echo " «Zusammenfassung der Agent-Antwort»"
echo ""
echo " → Copilot Chat: /history (ergänzt Session-Datei korrekt)"
ERRORS=$((ERRORS + 1))
fi
fi
fi
fi

View file

@ -218,3 +218,21 @@ Einmalig manuell deployed. Commit `fa007db`.
Prompts 1012 ergänzt. Ursache: Session-Datei wurde vor Commit `fa007db` nicht aktualisiert,
obwohl `copilot-instructions.md` das als Pflicht festlegt. Fehler des Agents.
### Prompt 13
„Wie konnte das passieren und wie kannst du das verhindern?"
### Antwort 13
Ursache analysiert: Commit `fa007db` enthielt die Session-Datei (Check 6 passiert), aber nur
als „Nachtrag"-Block ohne `### Prompt`-Einträge → Hook hat Inhalt nicht geprüft, nur Präsenz.
Zwei Maßnahmen implementiert:
1. **pre-commit Hook Check 6 erweitert** drei neue Bedingungen:
- Dateiname muss heutiges Datum enthalten
- Datei muss mindestens einen `### Prompt`-Eintrag enthalten (via `git show ":$FILE"`)
- Klare Fehlermeldung mit korrektem Format-Beispiel
2. **copilot-instructions.md** (beide: `.github/` + `git-templates/.github/`) **präzisiert:**
- Schritt 2 neu: explizit „Für jeden Benutzer-Prompt" + Format-Template im Code-Block
- Warnung: „⚠ Kein Nachtrag-Block statt echter Prompt-Einträge"
- Check-6-Bedingungen in der Anleitung aufgelistet
Commit `PENDING`.

View file

@ -8,7 +8,7 @@
## Aktueller Projektstatus
**Letzte Aktualisierung:** 2026-06-03 copilot-update Self-Update + Framework-Sektion; session history nachgepflegt
**Letzte Aktualisierung:** 2026-06-03 Check 6 Inhaltsprüfung + copilot-instructions.md Prompt-Format-Pflicht
**Phase:** Produktion / stabil wird bei Bedarf erweitert
---