# 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) --- ## Git Commit | Feld | Wert | |---|---| | Datum | 2026-06-02 17:58:25 | | Branch | `master` | | Commit | `8ec4038dc591821b3d821db2e67c0ae8fe925e28` | | Autor | Conrad Schulz | ### Commit Message ``` docs: session history 2026-06-02 review-fixes + requirements engineering ``` ### Geänderte Dateien | Status | Datei | |---|---| | M | history/prompts/2026-06-02_copilot-update-auto-deploy_session.md | | A | history/prompts/2026-06-02_review-fixes-requirements-engineering_session.md | | M | history/summary/PROJECT_CONTEXT.md | --- *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 | ### 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.*