docs: session history 2026-06-02 review-fixes + requirements engineering

This commit is contained in:
Conrad Schulz 2026-06-02 17:58:25 +00:00
parent a959d76850
commit 8ec4038dc5
3 changed files with 214 additions and 2 deletions

View file

@ -272,3 +272,37 @@ fix: alle --no-verify Referenzen entfernt + pre-commit Nummerierung
---
*Git-Block automatisch generiert durch post-commit hook.*
---
## Git Commit
| Feld | Wert |
|---|---|
| Datum | 2026-06-02 17:51:41 |
| Branch | `master` |
| Commit | `a959d768505ba3ac807fcf2031f8a615a0351e0b` |
| Autor | Conrad Schulz <conradschulz@me.com> |
### Commit Message
```
feat: requirements engineering + konsistenz-check
```
### Geänderte Dateien
| Status | Datei |
|---|---|
| M | .github/copilot-instructions.md |
| M | git-templates/.github/copilot-instructions.md |
| A | git-templates/docs/requirements/REQUIREMENTS.md |
| M | git-templates/history/summary/PROJECT_CONTEXT.md |
| M | git-templates/hooks/pre-commit |
| M | history/prompts/2026-06-02_copilot-update-auto-deploy_session.md |
| M | history/summary/PROJECT_CONTEXT.md |
| A | prompts/check-consistency.prompt.md |
| M | prompts/requirements.prompt.md |
---
*Git-Block automatisch generiert durch post-commit hook.*

View file

@ -0,0 +1,176 @@
# Review-Fixes + Requirements Engineering 2026-06-02
## Aufgabe / Ziel
1. 7 identifizierte Review-Findings beheben (vom Vorgespräch genehmigt)
2. Vollständige Konsistenzprüfung aller Dateien
3. Requirements Engineering System aufbauen: persistente REQUIREMENTS.md + `/check-consistency` Prompt + pre-commit Check 5
---
## Verlauf
### Prompt 1
„ja löse alle probleme" (User hatte 7 Probleme aus dem Review genehmigt)
Die 7 Probleme aus dem Review:
1. `pre-commit` Zeile 10: `# Bypass (bewusst): git commit --no-verify` → entfernen
2. Orphan-Datei `history/prompts/2026-06-02_master_55fee83.md` → löschen
3. Beide `copilot-instructions.md` Zeile 57: `YYYY-MM-DD_beschreibung.md``YYYY-MM-DD_beschreibung_session.md`
4. `pre-commit` Check 2: `.copilot-no-docs` Opt-out analog zu `.copilot-no-tests`
5. `prompts/history.prompt.md`: `{{DATUM}}`/`{{TITEL}}` erklären + Append-Verhalten korrigieren
6. `scripts/copilot-bootstrap.sh`: Hinweis auf `git copilot-update` für Hook-Updates
7. `prompts/history.prompt.md`: falscher Claim „wird nur neuer Inhalt hinzugefügt" → korrigieren
### Antwort 1
Alle betroffenen Stellen gelesen (copilot-instructions.md beide, pre-commit, history.prompt.md, copilot-bootstrap.sh).
`multi_replace_string_in_file` mit 6 gleichzeitigen Änderungen:
- `git-templates/hooks/pre-commit`: `--no-verify`-Kommentar → neutraler Kommentar; Check 2 Bedingung ergänzt um `[ ! -f ".copilot-no-docs" ]`
- Beide `copilot-instructions.md`: `_session.md`-Suffix in Agent-History-Sektion
- `prompts/history.prompt.md`: `{{DATUM}}`/`{{TITEL}}` durch feste Beschreibung ersetzt + Append-Verhalten korrekt formuliert
- `scripts/copilot-bootstrap.sh`: Hinweis auf `git copilot-update` mit Erklärung ergänzt
Terminal: Orphan-Stub gelöscht, `.copilot-no-docs` angelegt, lokaler Hook aktualisiert.
### Prompt 2
Quality Gate blockiert beim Commit: `PROJECT_CONTEXT.md nicht aktualisiert`
### Antwort 2
`history/summary/PROJECT_CONTEXT.md` aktualisiert:
- „Letzte Aktualisierung" auf Review-Findings gesetzt
- Neuer Eintrag in Erledigte Aufgaben
- Architekturentscheidung `--no-verify Escape``Kein --no-verify nirgendwo` ersetzt
Commit `fb1a01b` Quality Gate bestanden, gepusht.
---
### Prompt 3
„Prüfe noch mal alles auf Widersprüche und Fehler ob jetzt auch wirklich alles kongruent ist."
### Antwort 3
Vollständige Konsistenzprüfung aller Dateien durchgeführt.
**5 Widersprüche gefunden:**
| # | Datei | Problem |
|---|---|---|
| A | `git-templates/hooks/pre-commit` | Check 1 + 2 sagten `[1/3]`/`[2/3]` obwohl 4 Checks existieren |
| B | Beide `copilot-instructions.md` DoD | `(oder Bypass bewusst begründet)` noch vorhanden |
| C | `docs/USER.md` FAQ | `--no-verify` als Option empfohlen |
| D | `docs/ADMIN.md` | „Hook deaktivieren (pro Commit)" Abschnitt + Troubleshooting mit `--no-verify` |
| E | `docs/MAINTAINER.md` | `--no-verify` als „Escape-Valve" beschrieben, ADR-Eintrag veraltet |
Alle 5 behoben per `multi_replace_string_in_file`.
Commit `d31db90` Quality Gate bestanden, gepusht.
---
### Prompt 4
„Füge noch einen Check hinzu dass die KI beim Committen nochmal überprüfen soll dass alles kongruent ist. Und einen Part mit Requirement Engineering die Agenten sollen einen expliziten Ort schaffen in dem sie alle verstandenen Anforderungen abspeichern und verwalten."
### Antwort 4
Plan (7 Punkte):
1. pre-commit Check 5: REQUIREMENTS.md unstaged-Prüfung
2. Template `git-templates/docs/requirements/REQUIREMENTS.md`
3. Beide `copilot-instructions.md`: Requirements-Sektion + DoD + Before-starting
4. `prompts/requirements.prompt.md`: liest + schreibt persistente Datei
5. `prompts/check-consistency.prompt.md`: neuer `/check-consistency` Prompt
6. `git-templates/history/summary/PROJECT_CONTEXT.md` Template: Requirements-Pfad
7. Lokalen Hook aktualisieren + Commit
**Umsetzung:**
`git-templates/hooks/pre-commit`:
- Header: 5 Checks dokumentiert
- Check 5 eingefügt: prüft ob `docs/requirements/REQUIREMENTS.md` unstaged Änderungen hat
- Opt-out: `.copilot-no-requirements`
- Summary-Zähler: `von 4``von 5`
`git-templates/docs/requirements/REQUIREMENTS.md` (neu):
- Template mit: Nutzer-Rollen, User Stories (US-NNN Format), ACs (Given/When/Then), NFRs-Tabelle, Out-of-Scope, Offene Fragen, Änderungshistorie
`prompts/check-consistency.prompt.md` (neu):
- 3 Check-Abschnitte: Code vs. Requirements, Code vs. Docs, Code vs. Code
- Strukturiertes Ergebnis-Format (✓ Konsistent / ✗ Widersprüche / ⚠ Offene Punkte)
`prompts/requirements.prompt.md`:
- Liest `docs/requirements/REQUIREMENTS.md` zuerst
- Schreibt vollständiges Ergebnis zurück nach dem Workshop
- `git add docs/requirements/REQUIREMENTS.md` am Ende
Beide `copilot-instructions.md`:
- Neue Sektion `Requirements (/docs/requirements/)` in Project Structure Conventions
- Before-starting: Punkt 1 = REQUIREMENTS.md lesen
- DoD: Requirements-Konsistenz prüfen + Datei aktualisieren
`git-templates/history/summary/PROJECT_CONTEXT.md`: `Requirements:`-Pfad ergänzt
Commit `a959d76` Quality Gate bestanden, gepusht.
---
### Prompt 5
„ok wo finde ich jetzt die letzten Prompts und unsere Konversation von gerade?"
### Antwort 5
Erklärung der zwei Orte:
- **Konversations-History**: `history/prompts/2026-06-02_copilot-update-auto-deploy_session.md` (post-commit hängt Git-Blöcke an, vollständiger Inhalt kommt via `/history`)
- **Prompts (Slash-Befehle)**: `~/.vscode-server/data/User/prompts/` `check-consistency.prompt.md` noch nicht deployed, benötigt `git copilot-update`
### Prompt 6
User führt `git copilot-update` aus → deployed.
### Prompt 7
„wie führe ich history aus?"
### Antwort 7
Erklärt: `/history` in VS Code Copilot Chat eintippen.
### Prompt 8
`/history` → Diese Session-Datei wird erstellt.
---
## Ergebnis
### Geänderte Dateien
| Datei | Änderung |
|---|---|
| `git-templates/hooks/pre-commit` | Check-Nummerierung korrigiert; Check 5 (REQUIREMENTS.md) hinzugefügt; `.copilot-no-docs` Opt-out |
| `git-templates/docs/requirements/REQUIREMENTS.md` | Neu: persistentes Requirements-Template |
| `git-templates/.github/copilot-instructions.md` | Requirements-Sektion, DoD, Before-starting erweitert |
| `.github/copilot-instructions.md` | Selbe Änderungen wie git-templates Version |
| `git-templates/history/summary/PROJECT_CONTEXT.md` | Requirements-Pfad ergänzt |
| `prompts/check-consistency.prompt.md` | Neu: `/check-consistency` Prompt |
| `prompts/requirements.prompt.md` | Liest + schreibt persistente REQUIREMENTS.md |
| `prompts/history.prompt.md` | Append-Verhalten korrekt; keine Template-Variablen mehr |
| `scripts/copilot-bootstrap.sh` | Hinweis auf `git copilot-update` für Hook-Updates |
| `docs/USER.md` / `docs/ADMIN.md` / `docs/MAINTAINER.md` | Alle `--no-verify` Referenzen entfernt |
| `.copilot-no-docs` | Neu angelegt (Setup-Repo = kein Doku-Pflicht-Repo) |
| `history/summary/PROJECT_CONTEXT.md` | Aktualisiert |
### Commits dieser Session
- `fb1a01b` fix: review-findings behoben (7 Punkte)
- `d31db90` fix: konsistenzprüfung (5 Widersprüche)
- `a959d76` feat: requirements engineering + konsistenz-check
---
## Entscheidungen
| Entscheidung | Begründung |
|---|---|
| Check 5 blockiert nur bei **unstaged** REQUIREMENTS.md | Kein Lärm bei normalen Commits feuert nur wenn Agent die Datei vergessen hat zu stagen |
| `/check-consistency` als separater Prompt statt in pre-commit | pre-commit = automatisch/schnell; Konsistenz-Check = bewusst aufgerufen, braucht LLM-Kontext |
| `.copilot-no-requirements` Opt-out | Konsistent mit `.copilot-no-tests` und `.copilot-no-docs` Pattern |
| `docs/requirements/REQUIREMENTS.md` (nicht root-level) | Gehört semantisch zur Dokumentation |
---
## Offene Punkte
- [ ] `docs/requirements/REQUIREMENTS.md` für dieses Setup-Repo selbst anlegen (aktuell nur Template im git-templates)
- [ ] `.github/copilot-instructions.md` TODO-Felder ausfüllen (Stack, Architecture, NFRs)

View file

@ -8,7 +8,7 @@
## Aktueller Projektstatus
**Letzte Aktualisierung:** 2026-06-02 Requirements Engineering + Konsistenz-Check hinzugefügt
**Letzte Aktualisierung:** 2026-06-02 Session abgeschlossen: Review-Fixes + Konsistenzcheck + Requirements Engineering
**Phase:** Produktion / stabil wird bei Bedarf erweitert
---
@ -42,8 +42,9 @@ Quality Gate aus.
## Offene Aufgaben & bekannte Probleme
- [ ] `docs/requirements/REQUIREMENTS.md` für dieses Setup-Repo selbst anlegen (aktuell nur Template in git-templates)
- [ ] `.github/copilot-instructions.md` TODO-Felder ausfüllen (Stack, Architecture, NFRs dieses Repos)
- [ ] Bei Änderungen an `git-templates/` immer `deploy.sh` neu ausführen (oder `git copilot-update` in einem anderen Repo zum Testen)
- [ ] Bei Änderungen an `git-templates/` immer `deploy.sh` neu ausführen (oder `git copilot-update` testen)
---
@ -66,6 +67,7 @@ Quality Gate aus.
## Wichtige Pfade & Konventionen
- **Requirements:** `docs/requirements/REQUIREMENTS.md` (committed, immer aktuell halten!)
- **Persistente Daten:** `/data/` (gitignored, nie committen!)
- **Agent-Logs (voll):** `/history/prompts/` (committed vollständige History bleibt erhalten)
- **Dieser Kontext:** `/history/summary/PROJECT_CONTEXT.md` (committed)