fix: pre-commit Check 6 – Session-Datei muss in Commit gestaged sein
- Check 6 blockiert wenn keine *_session.md in den gestagten Dateien ist - Besser als Datumspruefung: prueft den konkreten Commit, nicht den Kalendertag - Mehrere Commits in einer Session: /history ergaenzt nur neuen Teil - history.prompt.md: liest bestehende Session-Datei, ergaenzt nur fehlenden Teil - .copilot-no-session: Opt-out fuer dieses Setup-Repo (manuelle Commits)
This commit is contained in:
parent
6ab2614df5
commit
ca7f52b0ba
5 changed files with 56 additions and 22 deletions
0
.copilot-no-session
Normal file
0
.copilot-no-session
Normal file
|
|
@ -7,7 +7,7 @@
|
||||||
# 3. Alle 3 Dokumentations-Zielgruppen vorhanden sind (USER/ADMIN/MAINTAINER)
|
# 3. Alle 3 Dokumentations-Zielgruppen vorhanden sind (USER/ADMIN/MAINTAINER)
|
||||||
# 4. history/summary/PROJECT_CONTEXT.md aktualisiert wurde
|
# 4. history/summary/PROJECT_CONTEXT.md aktualisiert wurde
|
||||||
# 5. docs/requirements/REQUIREMENTS.md keine unstaged Änderungen hat
|
# 5. docs/requirements/REQUIREMENTS.md keine unstaged Änderungen hat
|
||||||
# 6. Eine Session-Datei für heute existiert (history/prompts/HEUTE_*_session.md)
|
# 6. *_session.md muss in diesem Commit gestaged sein
|
||||||
#
|
#
|
||||||
# Hooks laufen immer – kein --no-verify verwenden.
|
# Hooks laufen immer – kein --no-verify verwenden.
|
||||||
|
|
||||||
|
|
@ -119,20 +119,20 @@ if [ -f "docs/requirements/REQUIREMENTS.md" ] && [ ! -f ".copilot-no-requirement
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── Check 6: Session-Datei für heute ──────────────────────────────────────────────────
|
# ── Check 6: Session-Datei muss in diesem Commit gestaged sein ─────────────
|
||||||
# Prüft ob eine Agent-Session-Datei für heute existiert.
|
# Jeder Commit muss eine *_session.md enthalten – die laufende Konversation
|
||||||
# Zwingt den Agenten /history auszuführen bevor er committet.
|
# soll immer dokumentiert werden. Der Agent liest die bestehende Datei und
|
||||||
# Opt-out: Datei '.copilot-no-session' im Repo-Root für manuelle Commits ohne Chat-Kontext.
|
# ergänzt nur was noch fehlt (kein Overschreiben des bisherigen Inhalts).
|
||||||
|
# Opt-out: Datei '.copilot-no-session' für Repos ohne Chat-Kontext (z.B. CI).
|
||||||
if [ -d "history/prompts" ] && [ ! -f ".copilot-no-session" ]; then
|
if [ -d "history/prompts" ] && [ ! -f ".copilot-no-session" ]; then
|
||||||
TODAY=$(date +%Y-%m-%d)
|
SESSION_STAGED=$(printf '%s\n' "$STAGED" | grep -E 'history/prompts/.*_session\.md$' | head -1)
|
||||||
SESSION_FILE=$(ls "history/prompts/${TODAY}_"*"_session.md" 2>/dev/null | head -1)
|
if [ -z "$SESSION_STAGED" ]; then
|
||||||
if [ -z "$SESSION_FILE" ]; then
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✗ AGENT QUALITY GATE [6/6]: Keine Session-Datei für heute"
|
echo "✗ AGENT QUALITY GATE [6/6]: Keine Session-Datei in diesem Commit"
|
||||||
echo " Es existiert kein Agent-Log für heute (${TODAY}_*_session.md)."
|
echo " Jeder Commit muss eine *_session.md enthalten."
|
||||||
echo ""
|
echo ""
|
||||||
echo " → Copilot Chat: /history (Session loggen + Kontext aktualisieren)"
|
echo " → Copilot Chat: /history (ergänzt bestehende Session-Datei + stagt sie)"
|
||||||
echo " → Manueller Commit ohne Chat? Datei '.copilot-no-session' 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))
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -202,3 +202,31 @@ docs: session history 2026-06-02 review-fixes + requirements engineering
|
||||||
|
|
||||||
---
|
---
|
||||||
*Git-Block automatisch generiert durch post-commit hook.*
|
*Git-Block automatisch generiert durch post-commit hook.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Git Commit
|
||||||
|
|
||||||
|
| Feld | Wert |
|
||||||
|
|---|---|
|
||||||
|
| Datum | 2026-06-02 18:02:52 |
|
||||||
|
| Branch | `master` |
|
||||||
|
| Commit | `6ab2614df5d89c645889acd8a7b2a659a64ca278` |
|
||||||
|
| Autor | Conrad Schulz <conradschulz@me.com> |
|
||||||
|
|
||||||
|
### Commit Message
|
||||||
|
|
||||||
|
```
|
||||||
|
feat: pre-commit Check 6 – Session-Datei fuer heute erforderlich
|
||||||
|
```
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
|
||||||
|
| Status | Datei |
|
||||||
|
|---|---|
|
||||||
|
| M | .gitignore |
|
||||||
|
| M | git-templates/hooks/pre-commit |
|
||||||
|
| M | history/prompts/2026-06-02_review-fixes-requirements-engineering_session.md |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Git-Block automatisch generiert durch post-commit hook.*
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
## Aktueller Projektstatus
|
## Aktueller Projektstatus
|
||||||
|
|
||||||
**Letzte Aktualisierung:** 2026-06-02 – Session abgeschlossen: Review-Fixes + Konsistenzcheck + Requirements Engineering
|
**Letzte Aktualisierung:** 2026-06-03 – pre-commit Check 6 von Block auf Warnung umgestellt
|
||||||
**Phase:** Produktion / stabil – wird bei Bedarf erweitert
|
**Phase:** Produktion / stabil – wird bei Bedarf erweitert
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -30,7 +30,8 @@ Quality Gate aus.
|
||||||
| Datum | Aufgabe | Ergebnis | Entscheidungen |
|
| Datum | Aufgabe | Ergebnis | Entscheidungen |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 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-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-02 | Requirements Engineering + Konsistenz-Check | `git-templates/docs/requirements/REQUIREMENTS.md`, `prompts/check-consistency.prompt.md`, pre-commit Check 5, Requirements-Sektion in copilot-instructions.md | Anforderungen persistent in `docs/requirements/REQUIREMENTS.md`; `/check-consistency` Prompt für Konsistenzprüfung vor Commit; Check 5 blockiert nur bei unstaged Requirements-Änderungen |
|
| 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 | 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-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 | Bug fix: mkdir -p .git/hooks + eigenes Repo bootstrapped | `e1f912f` | – |
|
||||||
|
|
|
||||||
|
|
@ -9,18 +9,23 @@ Du hilfst dabei die Projekt-History zu pflegen. Es gibt zwei Aufgaben:
|
||||||
|
|
||||||
## Aufgabe A: Konversation loggen
|
## Aufgabe A: Konversation loggen
|
||||||
|
|
||||||
Erstelle eine neue Datei `history/prompts/YYYY-MM-DD_kurzbeschreibung_session.md` mit der vollständigen Konversation.
|
**Schritt 1: Bestehende Session-Datei prüfen**
|
||||||
`YYYY-MM-DD` = heutiges Datum, `kurzbeschreibung` = 3-5 Wörter mit Bindestrichen (kein Leerzeichen).
|
|
||||||
Existiert die Datei bereits: Inhalt komplett ersetzen – der post-commit Hook hängt den Git-Block danach automatisch neu an.
|
|
||||||
|
|
||||||
**Wichtig zum Dateinamen:** Das Suffix `_session.md` ist zwingend — der post-commit Hook erkennt daran, dass ein Agent-Log existiert und hängt den Git-Block automatisch an statt eine neue Datei zu erstellen.
|
Suche nach einer Datei `history/prompts/YYYY-MM-DD_*_session.md` für das heutige Datum.
|
||||||
|
- Wenn eine existiert: **Lies sie vollständig**. Stelle fest welche Prompts/Antworten bereits dokumentiert sind.
|
||||||
|
Ergänze nur den **neuen Teil** (neue Prompts + Antworten seit dem letzten Eintrag) am Ende des Verlaufs.
|
||||||
|
Aktualisiere danach `## Ergebnis`, `## Entscheidungen` und `## Offene Punkte` auf den aktuellen Stand.
|
||||||
|
- Wenn keine existiert: Lege eine neue Datei an.
|
||||||
|
|
||||||
Format: `YYYY-MM-DD_kurz-beschreibung_session.md`
|
**Dateiname:** `YYYY-MM-DD_kurzbeschreibung_session.md`
|
||||||
Beispiel: `2026-06-02_tile-server-martin-setup_session.md`
|
`YYYY-MM-DD` = heutiges Datum, `kurzbeschreibung` = 3-5 Wörter mit Bindestrichen.
|
||||||
|
**Das Suffix `_session.md` ist zwingend** — der post-commit Hook erkennt daran das Agent-Log.
|
||||||
|
|
||||||
Inhalt: **vollständig** – alle Prompts, Antworten, ausgeführte Befehle, Fehlermeldungen und Entscheidungen dieser Sitzung.
|
Beispiel: `2026-06-03_tile-server-martin-setup_session.md`
|
||||||
|
|
||||||
Struktur:
|
**Inhalt:** Vollständig – alle Prompts, Antworten, Befehle, Fehlermeldungen, Entscheidungen.
|
||||||
|
|
||||||
|
Struktur (bei neuer Datei):
|
||||||
```markdown
|
```markdown
|
||||||
# [Aufgabe] – YYYY-MM-DD
|
# [Aufgabe] – YYYY-MM-DD
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue