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:
parent
ebaab63116
commit
411b7b0a29
5 changed files with 83 additions and 11 deletions
21
.github/copilot-instructions.md
vendored
21
.github/copilot-instructions.md
vendored
|
|
@ -10,11 +10,22 @@
|
||||||
|
|
||||||
**Session END** – Der Agent führt dies **automatisch** am Ende jeder Aufgabe aus, bevor er `git commit` ausführt:
|
**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
|
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`
|
**Dateiformat zwingend:** Suffix `_session.md`, Dateiname beginnt mit heutigem Datum (`YYYY-MM-DD`)
|
||||||
2. Aktualisiere `history/summary/PROJECT_CONTEXT.md` mit dem neuen Projektstand
|
2. **Für jeden Benutzer-Prompt seit dem letzten Commit** einen Block ergänzen:
|
||||||
3. **Stage beide Dateien VOR `git commit`:** `git add history/`
|
```
|
||||||
Der pre-commit Hook (Check 6) blockiert wenn keine `*_session.md` gestaged ist.
|
### Prompt N
|
||||||
Kein Opt-out möglich – jeder Commit braucht eine Session-Datei.
|
«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".
|
> Kein Bypass. Kein Vergessen. Kein "mache ich beim nächsten Mal".
|
||||||
> Die History ist das Gedächtnis des Projekts.
|
> Die History ist das Gedächtnis des Projekts.
|
||||||
|
|
|
||||||
21
git-templates/.github/copilot-instructions.md
vendored
21
git-templates/.github/copilot-instructions.md
vendored
|
|
@ -10,11 +10,22 @@
|
||||||
|
|
||||||
**Session END** – Der Agent führt dies **automatisch** am Ende jeder Aufgabe aus, bevor er `git commit` ausführt:
|
**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
|
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`
|
**Dateiformat zwingend:** Suffix `_session.md`, Dateiname beginnt mit heutigem Datum (`YYYY-MM-DD`)
|
||||||
2. Aktualisiere `history/summary/PROJECT_CONTEXT.md` mit dem neuen Projektstand
|
2. **Für jeden Benutzer-Prompt seit dem letzten Commit** einen Block ergänzen:
|
||||||
3. **Stage beide Dateien VOR `git commit`:** `git add history/`
|
```
|
||||||
Der pre-commit Hook (Check 6) blockiert wenn keine `*_session.md` gestaged ist.
|
### Prompt N
|
||||||
Kein Opt-out möglich – jeder Commit braucht eine Session-Datei.
|
«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".
|
> Kein Bypass. Kein Vergessen. Kein "mache ich beim nächsten Mal".
|
||||||
> Die History ist das Gedächtnis des Projekts.
|
> Die History ist das Gedächtnis des Projekts.
|
||||||
|
|
|
||||||
|
|
@ -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 " → Kein Chat-Kontext (z.B. CI/manuell)? Opt-out anlegen:"
|
||||||
echo " touch .copilot-no-session && git add .copilot-no-session"
|
echo " touch .copilot-no-session && git add .copilot-no-session"
|
||||||
ERRORS=$((ERRORS + 1))
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -218,3 +218,21 @@ Einmalig manuell deployed. Commit `fa007db`.
|
||||||
Prompts 10–12 ergänzt. Ursache: Session-Datei wurde vor Commit `fa007db` nicht aktualisiert,
|
Prompts 10–12 ergänzt. Ursache: Session-Datei wurde vor Commit `fa007db` nicht aktualisiert,
|
||||||
obwohl `copilot-instructions.md` das als Pflicht festlegt. Fehler des Agents.
|
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`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
## Aktueller Projektstatus
|
## 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
|
**Phase:** Produktion / stabil – wird bei Bedarf erweitert
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue