Detaillierter Projektplan mit Teilplänen und Fragenliste
- docs/projektplan.md neu gegliedert: Arbeitsweise mit Freigaben, Zuständigkeiten, Meilensteine mit Abnahmekriterien, Arbeitspakete mit Status, Zeitplan, Entscheidungen - docs/plaene/: Teilplan je Arbeitspaket (detailliert für AP0, AP1, AP2, AP3, AP5, AP11, AP13; grob für AP4, AP6–AP10, AP12, Optionen) und Vorlage - docs/fragen.md: alle offenen Fragen mit Status, Empfänger und betroffenem Teilplan - CLAUDE.md: Umsetzung nur nach freigegebenem Teilplan Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
6aac8b0a16
commit
2143f4e955
@@ -0,0 +1,65 @@
|
||||
# AP0 – Steuerung, Klärung, Doku
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | in Arbeit |
|
||||
| Aufwand | 0,75 PW, laufend |
|
||||
| Zeitraum | KW 40 – KW 4/2027 |
|
||||
| Meilenstein | alle |
|
||||
| Freigabe | – (laufende Aufgabe) |
|
||||
|
||||
## Ziel
|
||||
|
||||
Offene Fragen werden geklärt, Plan und Doku sind aktuell, und BauIn und ITM wissen zu jedem
|
||||
Termin, wo das Projekt steht.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Fragen stellen und Antworten einpflegen
|
||||
- Statusberichte und Termine mit BauIn
|
||||
- Gesamtplan, Teilpläne und Doku pflegen
|
||||
- Abstimmung mit ITM und Claude Design
|
||||
|
||||
**Nicht enthalten:** Umsetzung, die steht in den übrigen Arbeitspaketen.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
Keine.
|
||||
|
||||
## Schritte
|
||||
|
||||
- [x] **0.1** Besprechung mit BauIn ausgewertet, API-Doku gelesen → Plan vom 02.10.
|
||||
- [x] **0.2** Gesamtplan neu gegliedert, Teilpläne angelegt, Fragenliste mit Status
|
||||
(`docs/fragen.md`) → dieser Stand
|
||||
- [ ] **0.3** Du gibst Gesamtplan und Teilpläne frei (oder korrigierst sie) → Status in den Teilplänen
|
||||
- [ ] **0.4** Fragen verschicken (du):
|
||||
- Teil A an die Nachtragsbearbeitung von BauIn
|
||||
- Teil B an die IT von BauIn
|
||||
- Teil C an die ITM-Projektleitung
|
||||
|
||||
Die Dateien zum Verschicken liegen im Planungsordner. Danach steht der Status in
|
||||
`docs/fragen.md` auf „gestellt“.
|
||||
- [ ] **0.5** Server-Anforderungen an den ITM-Entwickler schicken (du) → Bestätigung oder Rückfragen
|
||||
- [ ] **0.6** Rückmeldung an Claude Design geben (du); den neuen Stand ablegen, sobald er da ist
|
||||
→ Ordner `claude-design/` im Planungsordner
|
||||
- [ ] **0.7** Aufwand für den Kostenrahmen an die ITM-Projektleitung (du, bis 14.10.)
|
||||
→ Zahlen aus Abschnitt 4 des Gesamtplans
|
||||
- [ ] **0.8** Statusbericht für den 16.10.: Claude Code entwirft bis 14.10., du ergänzt Screenshots
|
||||
→ `docs/status/2026-10-16.md`
|
||||
- [ ] **0.9** Termin 16.10. durchführen (du); Antworten in `docs/fragen.md` eintragen, betroffene
|
||||
Teilpläne und Datenmodell anpassen (Claude Code, KW 42–43) → aktualisierte Pläne zur Freigabe
|
||||
- [ ] **0.10** Laufend:
|
||||
- Teilplan spätestens eine Woche vor Start detaillieren
|
||||
- Statusbericht vor jedem Freitagstermin
|
||||
- Änderungsprotokoll des Gesamtplans pflegen
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Alle ★-Fragen sind beantwortet oder bewusst vertagt.
|
||||
- Der Plan entspricht vor jedem Termin dem tatsächlichen Stand.
|
||||
|
||||
## Risiken
|
||||
|
||||
- Antworten kommen spät. Dann mit dem Vorschlag aus der Frage weiterarbeiten und das im Plan
|
||||
vermerken.
|
||||
@@ -0,0 +1,126 @@
|
||||
# AP1 – Fundament: CI, Rechte, Benutzer, Projekte, Upload, Protokoll
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | in Arbeit; Schritte ab 1.5 detailliert, warten auf Freigabe |
|
||||
| Aufwand | 1,25 PW offen (mit Claude Code) |
|
||||
| Zeitraum | KW 40–43 |
|
||||
| Meilenstein | M1 (30.10.) |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Benutzer melden sich an, sehen nur die Projekte, in denen sie Mitglied sind, legen Projekte mit
|
||||
PFA und Verträgen an und laden LV-Pakete hoch. Jede wichtige Aktion wird protokolliert.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- CI
|
||||
- Rechtekonzept und Policies
|
||||
- Benutzerverwaltung
|
||||
- Projektverwaltung (Projekt, PFA, Verträge, Auftragnehmer, Mitglieder)
|
||||
- Upload und Download im privaten Speicher, auch als ZIP
|
||||
- Protokoll
|
||||
- Länderstruktur
|
||||
|
||||
**Nicht enthalten:**
|
||||
- GAEB-Import (AP5)
|
||||
- Anmeldung mit dem Microsoft-Konto (erst nach Antwort B1, eigener Schritt)
|
||||
- Endgültiges Design (AP13): Die Oberflächen entstehen zuerst mit TallStackUI-Standard und
|
||||
werden in AP13 angepasst.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Fragen: A1 (Gliederung), A25 (Rollen), B1 (Anmeldung), B4 (Ordnerstruktur für ZIP)
|
||||
- D5 (Actions-Runner auf dem Synology-Gitea)
|
||||
|
||||
## Entscheidungen
|
||||
|
||||
| Nr. | Frage | Vorschlag | Entschieden |
|
||||
|---|---|---|---|
|
||||
| E1.1 | Projektrollen über eigene Tabelle oder Spatie-Teams? | Eigene Tabelle `projekt_mitglieder` (umgesetzt); globale Rollen über Spatie | offen |
|
||||
| E1.2 | Protokoll: Paket oder eigene Tabelle? | `spatie/laravel-activitylog` (MIT, verbreitet) | offen |
|
||||
| E1.3 | Neue Benutzer: Einladung per E-Mail mit Link zum Passwort setzen, oder Admin vergibt Startpasswort? | Einladung per E-Mail (Mailpit in der Entwicklung) | offen |
|
||||
| E1.4 | Benutzer löschen oder nur deaktivieren? | Nur deaktivieren, damit Protokoll und Zuordnungen erhalten bleiben | offen |
|
||||
| E1.5 | Darf der Administrator Projektinhalte sehen? | Nein, nur wenn er Projektmitglied ist | offen (A25) |
|
||||
|
||||
## Schritte
|
||||
|
||||
- [x] **1.1** Entwicklungsumgebung, Repository, gitleaks-Hook
|
||||
- [x] **1.2** Laravel 13, Livewire 4, TallStackUI 4, Fortify (2FA, Passkeys), Spatie,
|
||||
Mehrsprachigkeit
|
||||
- [x] **1.3** Nicht-funktionale Grundlagen: keine externen Ressourcen (Test), `CLAUDE.md`, Tech-Stack-Doku
|
||||
- [x] **1.4** Datenmodell Kern (`docs/datenmodell.md`). Umgesetzt vor Freigabe.
|
||||
- [ ] **1.4a** Review mit dir: Erklärung der Tabellen, Entscheidung E1.1
|
||||
- [ ] **1.4b** Anpassen nach den Antworten A1, A4, A8 und A10
|
||||
- [ ] **1.5** CI in Gitea Actions:
|
||||
- Runner auf dem Synology prüfen bzw. einrichten (Skript von Claude Code, du führst es aus).
|
||||
- Workflow mit `composer install`, `npm run build`, Tests gegen MySQL, Pint (`--test`),
|
||||
PHPStan, Proxy-Tests und gitleaks.
|
||||
|
||||
→ Ergebnis: Jeder Push zeigt grün oder rot.
|
||||
- [ ] **1.6** Rechtekonzept `docs/rechte.md` → Ergebnis: Rechte-Matrix zur Freigabe durch dich (vorläufig bis A25):
|
||||
- Rollen: global Administrator (optional Regelverantwortlicher); je Projekt Projektleiter,
|
||||
Bearbeiter, Leser
|
||||
- Matrix Aktion × Rolle: Projekt sehen, anlegen, bearbeiten, archivieren; Mitglieder verwalten;
|
||||
Dokumente hochladen, sehen, herunterladen; vertrauliche Dokumente; Nachträge anlegen,
|
||||
zuweisen, prüfen; Export; Regeln vorschlagen und freigeben; Verwaltung
|
||||
- Mandantentrennung und Regeln für archivierte Projekte (nur lesen)
|
||||
- [ ] **1.7** Policies und Gates nach dem Rechtekonzept:
|
||||
- zentrale Abfrage „Projekte des Benutzers“
|
||||
- Mandanten-Scope
|
||||
- vertrauliche Dokumente nur für freigegebene Personen
|
||||
|
||||
→ Ergebnis: Je Aktion ein Test mit und einer ohne Berechtigung.
|
||||
- [ ] **1.8** Benutzerverwaltung (Administrator):
|
||||
- Liste mit Suche
|
||||
- Anlegen (Einladung nach E1.3), Bearbeiten, Deaktivieren (E1.4)
|
||||
- Globale Rolle, Mandant, 2FA-Status
|
||||
|
||||
→ Ergebnis: Verwaltung → Benutzer.
|
||||
- [ ] **1.9** Projektverwaltung:
|
||||
- Projektliste
|
||||
- Projekt anlegen in drei Schritten wie im Claude-Design-Entwurf: Projektdaten, PFA und Verträge
|
||||
mit Auftragnehmern, Mitglieder
|
||||
- Bearbeiten, Archivieren (schreibgeschützt)
|
||||
|
||||
→ Ergebnis: Projekte → Neues Projekt.
|
||||
- [ ] **1.10** Upload und Download:
|
||||
- Speicher `storage/app/private/<mandant>/<projekt>/…`
|
||||
- Einzel- und ZIP-Upload bis 200 MB
|
||||
- Paarbildung PDF, X86, D86 nach Dateinamen; Zuordnung zu PFA und Vertrag zum Bestätigen
|
||||
- Prüfung von Dateityp und Größe, Erkennung von Duplikaten (sha256)
|
||||
- Download nur über eine Route mit Rechteprüfung
|
||||
|
||||
→ Ergebnis: LV-Paket hochladen, LVs als Datensätze mit Dokumenten.
|
||||
- [ ] **1.11** Protokoll (E1.2):
|
||||
- Anmeldung (Erfolg und Fehlschlag)
|
||||
- Benutzer- und Rechteänderungen
|
||||
- Projektänderungen
|
||||
- Upload, Löschen, Herunterladen vertraulicher Dokumente
|
||||
- Einstellungen und Exporte
|
||||
|
||||
→ Ergebnis: Verwaltung → Protokoll mit Filter.
|
||||
- [ ] **1.12** Länderstruktur:
|
||||
- Schnittstelle für länderspezifische Begriffe und Auswahllisten
|
||||
- Umsetzung für DE, AT nur als Platzhalter
|
||||
- Länderwahl nur bei mehr als einem freigeschalteten Land
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Die Kriterien von M1 zu Benutzern, Projekten, Upload, Rechten und Protokoll sind erfüllt
|
||||
(`docs/projektplan.md`, Abschnitt 5).
|
||||
- Ein Benutzer ohne Mitgliedschaft erhält auf jeder Projekt-, Dokument- und Download-URL 403 oder 404.
|
||||
- CI ist grün.
|
||||
|
||||
## Tests
|
||||
|
||||
- Feature-Tests je Aktion mit und ohne Berechtigung, auch für andere Mandanten.
|
||||
- Upload: Paarbildung, zu große Datei, falscher Typ, Duplikat, ZIP mit Ordnern.
|
||||
- Protokolleinträge für die genannten Ereignisse.
|
||||
|
||||
## Risiken
|
||||
|
||||
- Die Rollen ändern sich nach A25. Deshalb das Konzept zuerst schriftlich und die Policies zentral halten.
|
||||
- Große ZIPs: Upload-Grenzen in PHP, Nginx und Livewire abstimmen und testen.
|
||||
@@ -0,0 +1,67 @@
|
||||
# AP2 – Meilisearch-Test
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | detailliert, wartet auf Freigabe |
|
||||
| Aufwand | 0,25 PW |
|
||||
| Zeitraum | Teil 1 KW 41, Teil 2 KW 46 |
|
||||
| Meilenstein | M2 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Belegen, ob Meilisearch v1.54.2 Vektoren mit 4.096 Dimensionen schnell genug durchsucht. Danach
|
||||
steht fest, wie viel RAM der Server braucht und ob die binäre Quantisierung nötig ist. Teil 2
|
||||
misst die Trefferqualität mit echten Embeddings.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Teil 1: Leistung mit erzeugten Zufallsvektoren
|
||||
- Teil 2: Trefferquote mit echten Vektoren und Referenzfällen
|
||||
|
||||
**Nicht enthalten:** Aufbau der echten Indexierung (AP4).
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Teil 1: keine
|
||||
- Teil 2: Staging, Pilotdaten, Referenzfälle (A20), KI-API (AP3)
|
||||
|
||||
## Entscheidungen
|
||||
|
||||
| Nr. | Frage | Vorschlag | Entschieden |
|
||||
|---|---|---|---|
|
||||
| E2.1 | Grenzwerte für „bestanden“ | Bei 50.000 Abschnitten mit Filter auf Vertrag: Antwortzeit p95 < 300 ms, Indexierung < 30 min, RAM von Meilisearch < 8 GB | offen |
|
||||
|
||||
## Schritte
|
||||
|
||||
**Teil 1 (KW 41):**
|
||||
- [ ] **2.1** Messskript (`tools/meili-test/`, nur Entwicklung):
|
||||
- erzeugt N Abschnitte mit normalisierten Zufallsvektoren (4.096 Dimensionen)
|
||||
- mit Filterfeldern: Mandant, Land, Projekt, Abschnitt, Vertrag, Art
|
||||
- mit kurzen Texten
|
||||
- [ ] **2.2** Messung ohne Quantisierung für N = 10.000 und 50.000:
|
||||
- Indexierungszeit, Plattenbedarf, RAM
|
||||
- Antwortzeit p50/p95 über je 100 Anfragen für reine Vektorsuche, hybride Suche, hybride
|
||||
Suche mit Filter auf Vertrag bzw. Projekt
|
||||
- [ ] **2.3** Dieselbe Messung mit `binaryQuantized` in einem eigenen Index
|
||||
- [ ] **2.4** Bericht `docs/tests/meilisearch-teil1.md` → Ergebnis: Empfehlung zu RAM für die
|
||||
Server-Anforderungen und vorläufig zur Quantisierung; bei Nichtbestehen Plan B (Qdrant) bewerten
|
||||
|
||||
**Teil 2 (KW 46):**
|
||||
- [ ] **2.5** Messskript für Staging. Es gibt nur Kennzahlen aus, keine Inhalte:
|
||||
- Recall@10 und Recall@40 der richtigen Fundstelle
|
||||
- jeweils vor und nach dem Reranker
|
||||
- mit und ohne Quantisierung
|
||||
- [ ] **2.6** Du führst es auf Staging aus. Bericht `docs/tests/meilisearch-teil2.md` →
|
||||
Ergebnis: Entscheidung zur Quantisierung und Kandidatenzahl für AP4
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Beide Berichte liegen vor und enthalten eine Empfehlung.
|
||||
- Die Server-Anforderungen sind bei Bedarf angepasst.
|
||||
|
||||
## Risiken
|
||||
|
||||
- Zufallsvektoren sagen nichts über die Trefferqualität. Dafür gibt es Teil 2.
|
||||
- Große JSON-Mengen beim Indexieren: in Stapeln senden.
|
||||
@@ -0,0 +1,86 @@
|
||||
# AP3 – Anbindung KI-API ITM
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | in Arbeit; Schritte ab 3.2 detailliert, warten auf Freigabe |
|
||||
| Aufwand | 0,5 PW offen |
|
||||
| Zeitraum | KW 42 (Schnelltest, Einstellungen), KW 44 (Clients, Jobs) |
|
||||
| Meilenstein | M1/M2 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Die Anwendung nutzt Dokumentdienst, `embed`, `rerank` und `chat` zuverlässig. Sie beachtet die
|
||||
Grenzen der API und protokolliert jeden Aufruf ohne Inhalte und ohne Schlüssel. Die Schlüssel
|
||||
liegen verschlüsselt in der Datenbank.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Schlüsselverwaltung, Clients, Hintergrund-Jobs, Ratenbegrenzung, Wiederholungen,
|
||||
Verbrauchsprotokoll, Statusprüfung
|
||||
|
||||
**Nicht enthalten:**
|
||||
- Indexierung (AP4)
|
||||
- Prompts für die Beurteilung (AP7)
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- C1 (Schlüssel), C4–C8 (Modelle, Grenzen); Schlüssel im Windows-Tresor, Proxy läuft (du)
|
||||
- AP1 Schritt 1.7 (Rechte für Verwaltung)
|
||||
|
||||
## Entscheidungen
|
||||
|
||||
| Nr. | Frage | Vorschlag | Entschieden |
|
||||
|---|---|---|---|
|
||||
| E3.1 | Anteil der 120 Anfragen/min für interaktive Suche | 40/min reserviert, Rest für Hintergrund-Jobs; nach C8 anpassen | offen |
|
||||
| E3.2 | Standardmodell für einfache Aufgaben | `chat-noreasoning`, `chat` nur für die Beurteilung (AP7) | offen |
|
||||
|
||||
## Schritte
|
||||
|
||||
- [x] **3.1** Schlüssel-Proxy (`tools/ki-proxy`), Sperr-Hook für Claude Code, gitleaks-Regel
|
||||
- [ ] **3.2** Schnelltest über den Proxy, wenn du ihn gestartet hast. Nur Testtexte:
|
||||
- Modellverzeichnis
|
||||
- Dimension und Normalisierung von `embed` messen
|
||||
- `rerank`
|
||||
- `chat` mit Streaming
|
||||
|
||||
→ `docs/tests/ki-api-schnelltest.md`
|
||||
- [ ] **3.3** Einstellungen KI-Schnittstelle:
|
||||
- Tabelle mit verschlüsselten Feldern
|
||||
- Verwaltungsmaske: Basis-URL, drei Schlüsselfelder (nur beschreibbar, Anzeige `zki_…a1b2`),
|
||||
Modellnamen, „Verbindung prüfen“
|
||||
- Protokolleintrag bei Änderung (ohne Wert)
|
||||
- In der Entwicklung zeigt die Basis-URL auf den Proxy, die Schlüssel bleiben leer.
|
||||
- [ ] **3.4** Clients:
|
||||
- `Dokumentdienst` (einreichen, Status, Ergebnis Markdown/JSON)
|
||||
- `Embeddings` (Stapel; Instruct-Präfix für Suchanfragen nach C4)
|
||||
- `Rerank`
|
||||
- `Chat` (normal und Streaming)
|
||||
- [ ] **3.5** Jobs und Ausfallsicherheit:
|
||||
- Ergebnisse abfragen im Abstand von 2 bis 10 s
|
||||
- Job-ID gleich nach dem Einreichen speichern, keine Doppel-Einreichung nach Timeout
|
||||
- Wiederholung bei 429 (Retry-After) und 5xx mit Backoff
|
||||
- Ratenbegrenzer nach E3.1
|
||||
- [ ] **3.6** Verbrauchsprotokoll `ki_aufrufe`: Dienst, Modell, Dauer, Status, Tokens, Bezug.
|
||||
Keine Inhalte, keine Header.
|
||||
- [ ] **3.7** Statusprüfung: Artisan-Befehl und Anzeige im Systemstatus (erreichbar, Antwortzeit,
|
||||
Auslastung); Alarm über AP11
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- „Verbindung prüfen“ zeigt alle Dienste grün.
|
||||
- Die Schlüssel stehen nirgends im Klartext: nicht in der DB, nicht im Log, nicht in der Antwort
|
||||
der Maske.
|
||||
- Ein Ausfall der API stoppt keine Seite; die Jobs laufen später weiter.
|
||||
|
||||
## Tests
|
||||
|
||||
- `Http::fake` für 200, 202, 409, 410, 404, 429, 5xx, Timeout und Streaming
|
||||
- Ratenbegrenzer greift
|
||||
- Log und Protokoll enthalten keinen Schlüssel
|
||||
- Verwaltungsmaske nur für Administratoren
|
||||
|
||||
## Risiken
|
||||
|
||||
- Antworten von ITM fehlen (C4–C8): Werte messen (3.2) und Standardwerte konfigurierbar halten.
|
||||
@@ -0,0 +1,70 @@
|
||||
# AP4 – Indexierung und LV-Suche
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant, Detaillierung bis KW 43 |
|
||||
| Aufwand | 1,0 PW |
|
||||
| Zeitraum | KW 44–46 |
|
||||
| Meilenstein | M2 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Alle LV-Positionen und Vorbemerkungen eines Projekts sind über Stichwort und Bedeutung
|
||||
durchsuchbar. Jeder sieht nur, was er sehen darf, und springt vom Treffer ins PDF. Das ist auch
|
||||
die Grundlage der Vorprüfung.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Abschnitte bilden, Embeddings erzeugen
|
||||
- Rohvektoren in MySQL, Index in Meilisearch, Neuaufbau aus MySQL
|
||||
- Zentraler Suchdienst mit Pflichtfilter für Rechte und Suchreihenfolge
|
||||
- Hybride Suche mit Reranking
|
||||
- Oberfläche der LV-Suche
|
||||
|
||||
**Nicht enthalten:**
|
||||
- Vorschläge zur Prüfung (AP6)
|
||||
- Regelwerk (Phase 3)
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- AP2 Teil 1 (Ausstattung, Quantisierung), AP3 (Clients), AP5 (LV-Elemente)
|
||||
- A2 (weitere Vertragsunterlagen?), A4 (beauftragte Nachträge mit durchsuchen?), A10 (Suchreihenfolge)
|
||||
|
||||
## Entscheidungen (vorläufig)
|
||||
|
||||
| Nr. | Frage | Vorschlag |
|
||||
|---|---|---|
|
||||
| E4.1 | Einheit eines Abschnitts | Je Position: OZ, Kurztext und Langtext. Vorbemerkungen nach Absätzen. PDFs ohne GAEB in Abschnitten von etwa 500–1.000 Tokens |
|
||||
| E4.2 | Kandidaten vor dem Reranking | 40, danach die besten 10 (nach AP2 Teil 2 anpassen) |
|
||||
| E4.3 | Gewichtung Stichwort/Bedeutung | `semanticRatio` 0,6, einstellbar |
|
||||
|
||||
## Schritte (grob)
|
||||
|
||||
- [ ] **4.1** Abschnittsbildung aus `lv_elemente` und PDF-Texten
|
||||
- [ ] **4.2** Embedding-Jobs:
|
||||
- Stapel, Vorrang für Suchanfragen
|
||||
- Rohvektor als float32-BLOB mit Modell, Dimension und Vorverarbeitungsstand
|
||||
- [ ] **4.3** Meilisearch-Index:
|
||||
- Filterfelder Mandant, Land, Projekt, Abschnitt, Vertrag, Auftragnehmer, LV, Art, vertraulich
|
||||
- Embedder `userProvided`
|
||||
- [ ] **4.4** Zentraler Suchdienst:
|
||||
- Pflichtfilter aus den Rechten des Benutzers
|
||||
- Suchreihenfolge Vertrag → Abschnitt → Projekt nach den Projekteinstellungen
|
||||
- Reranking
|
||||
- [ ] **4.5** Neuaufbau des Index aus MySQL (Artisan-Befehl)
|
||||
- [ ] **4.6** Oberfläche LV-Suche:
|
||||
- Bereich wählbar: Vertrag, PFA oder Projekt
|
||||
- Treffer nach LV gruppiert, „Im PDF zeigen“
|
||||
- [ ] **4.7** Pilot-PFA auf Staging indexieren (du); Kennzahlen zu Dauer und Kosten
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Die Kriterien von M2 zur LV-Suche sind erfüllt.
|
||||
- Ein Benutzer ohne Recht erhält keinen Treffer und keine Trefferzahl aus fremden Projekten oder
|
||||
vertraulichen Dokumenten (Tests).
|
||||
|
||||
## Risiken
|
||||
|
||||
- Last auf der KI-API bei der Erstindexierung (C8): nachts in Stapeln laufen lassen.
|
||||
@@ -0,0 +1,85 @@
|
||||
# AP5 – GAEB-Import und PDF-Anzeige
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | detailliert, wartet auf Freigabe |
|
||||
| Aufwand | 1,25 PW |
|
||||
| Zeitraum | KW 41 (Test), KW 43–45 |
|
||||
| Meilenstein | M1 (LV-Baum), M2 (PDF, Nachträge) |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
LVs und Nachtrags-LVs werden aus X86-Dateien eingelesen: Positionen, Vorbemerkungen und Gliederung.
|
||||
Jede Position lässt sich im zugehörigen PDF an der richtigen Stelle anzeigen.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- GAEB DA XML (X86) für Vertrags-LVs und Nachtrags-LVs
|
||||
- LV-Baum, PDF-Anzeige mit Markierung, Zuordnung von OZ zur PDF-Seite
|
||||
- Nachtrag ohne X86 über Texterkennung mit Bestätigung durch den Bearbeiter
|
||||
|
||||
**Nicht enthalten:**
|
||||
- D86 (GAEB 90), nur falls A5 es erfordert
|
||||
- Kalkulationen und Preisnachweise (Phase 2)
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- AP1 Schritt 1.10 (Upload)
|
||||
- A3 (Vorbemerkungen in X86?), A5 (Nachtrags-LV immer als X86?), A18 (anonymisierte Beispiele)
|
||||
|
||||
## Entscheidungen
|
||||
|
||||
| Nr. | Frage | Vorschlag | Entschieden |
|
||||
|---|---|---|---|
|
||||
| E5.1 | Parser: eigene Umsetzung oder Bibliothek? | Nach Schritt 5.1; voraussichtlich eigene Umsetzung mit `XMLReader` (wenige gepflegte PHP-Bibliotheken) | offen |
|
||||
| E5.2 | PDF-Anzeige | pdf.js (`pdfjs-dist`) lokal über Vite gebündelt, kein CDN | offen |
|
||||
| E5.3 | Seitenzuordnung | PDF-Text je Seite lokal mit poppler (`pdftotext`), OZ suchen; Sail-Image um poppler-utils ergänzen | offen |
|
||||
|
||||
## Schritte
|
||||
|
||||
- [ ] **5.1** GAEB-Test (KW 41):
|
||||
- Öffentliche Beispieldateien suchen und deren Lizenz prüfen; dazu eine selbst erzeugte
|
||||
X86-Datei nach DA XML 3.3 mit Titeln, Positionen und Vorbemerkungen
|
||||
- Struktur auswerten, Bibliotheken prüfen
|
||||
|
||||
→ `docs/tests/gaeb-test.md` mit Vorschlag zu E5.1
|
||||
- [ ] **5.2** Datenmodell `lv_elemente`:
|
||||
- Felder: LV, übergeordnetes Element, Typ (Bereich, Titel, Position, Vorbemerkung, Hinweistext),
|
||||
OZ, Kurztext, Langtext, Menge, Einheit, EP, GP, Sortierung, PDF-Seite
|
||||
- Migration und Tests
|
||||
- [ ] **5.3** Parser und Import-Job X86 → `lv_elemente`:
|
||||
- Importstatus und Fehlerbericht
|
||||
- Erneuter Import ersetzt den alten Stand nachvollziehbar
|
||||
- [ ] **5.4** LV-Ansicht:
|
||||
- Baum mit Titeln, Positionen und Vorbemerkungen
|
||||
- Langtext aufklappbar, Suche im LV
|
||||
- [ ] **5.5** Seitenzuordnung (E5.3): je Element die PDF-Seite ermitteln, Abweichungen protokollieren
|
||||
- [ ] **5.6** PDF-Anzeige (E5.2):
|
||||
- Seite, Zoom, Sprung zur Position, Markierung der Stelle
|
||||
- Auslieferung nur über die Rechteprüfung
|
||||
- [ ] **5.7** Nachtrags-Import:
|
||||
- Nachtrags-LV als X86 → `nachtragspositionen`
|
||||
- Nur PDF → Dokumentdienst (AP3) → erkannte Positionen; der Bearbeiter bestätigt sie
|
||||
- [ ] **5.8** Anpassen nach den echten Beispielen (A18), sobald sie da sind
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Ein Beispiel-LV wird vollständig eingelesen: Anzahl der Positionen und Summen stimmen mit der Datei überein.
|
||||
- Ein Klick auf eine Position zeigt im PDF die richtige Seite mit Markierung.
|
||||
- Ein Nachtrags-LV ergibt die Nachtragspositionen.
|
||||
|
||||
## Tests
|
||||
|
||||
- Parser mit erfundenen Beispieldateien: Gliederung, Langtexte, Sonderfälle wie fehlende Menge
|
||||
oder Pauschalposition
|
||||
- Import-Job mit Fehlerfall
|
||||
- Seitenzuordnung
|
||||
- Rechteprüfung der PDF-Auslieferung
|
||||
|
||||
## Risiken
|
||||
|
||||
- Erweiterungen des Kalkulationsprogramms in der X86. Echte Beispiele früh anfordern (A18);
|
||||
unbekannte Elemente protokollieren statt abbrechen.
|
||||
- Gescannte PDFs ohne Textebene: dann keine Seitenzuordnung, Hinweis anzeigen.
|
||||
@@ -0,0 +1,57 @@
|
||||
# AP6 – Vorprüfung Stufe 1 und Prüfmaske
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant, Detaillierung bis KW 45 |
|
||||
| Aufwand | 1,25 PW |
|
||||
| Zeitraum | KW 46–47 |
|
||||
| Meilenstein | M2 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Für jede Position eines neuen Nachtrags stehen nach kurzer Zeit die wahrscheinlichsten Fundstellen
|
||||
im Vertrag fest, noch ohne Sprachmodell. Der Bearbeiter prüft sie in der Prüfmaske, korrigiert sie
|
||||
und setzt das Prüfergebnis.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Datenmodell für Prüfung, Fundstellen und Feedback
|
||||
- Vorprüfungs-Job je Nachtrag, KI-Sicherheit aus Signalen
|
||||
- Nachtragsliste, Prüfmaske v3 (ohne Sprachmodell-Teile)
|
||||
- Feedback je Aspekt, Korrektur der Fundstelle, Prüfergebnis, Verlauf
|
||||
|
||||
**Nicht enthalten:**
|
||||
- Einschätzung, Begründung und Bezugsposition durch das Sprachmodell (AP7)
|
||||
- Regeln (AP8)
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- AP4, AP5 (Nachtrags-Import), AP13
|
||||
- Prüfmaske v3 von Claude Design
|
||||
- A9 (Werte des Prüfergebnisses)
|
||||
|
||||
## Schritte (grob)
|
||||
|
||||
- [ ] **6.1** Datenmodell:
|
||||
- `pruefungen` je Nachtragsposition: Status, KI-Sicherheit, Prüfergebnis, Kommentar, bearbeitet von
|
||||
- `fundstellen`: LV-Element, Rang, Wert, Suchbereich
|
||||
- `feedback`: Aspekt, passt / passt nicht, Korrektur
|
||||
- [ ] **6.2** Vorprüfungs-Job: alle Positionen suchen (AP4), reranken, Fundstellen speichern,
|
||||
Nachtrag auf „vorgeprüft“ setzen, Benachrichtigung
|
||||
- [ ] **6.3** KI-Sicherheit aus Signalen: Wert der besten Fundstelle, Abstand zur zweiten, Art der
|
||||
Fundstelle; „Warum?“-Erklärung
|
||||
- [ ] **6.4** Nachtragsliste im Projekt und Positionsspalte mit Filter
|
||||
- [ ] **6.5** Prüfmaske v3 mit drei Spalten:
|
||||
- Fundstellen, Prüfergebnis, Begründung (Platzhalter bis AP7)
|
||||
- Original-Nachtrag, Anschreiben und Quellen als Reiter
|
||||
- [ ] **6.6** Feedback und Korrektur: richtige Fundstelle wählen, selbst suchen oder „keine
|
||||
Fundstelle“; Prüfergebnis; Verlauf
|
||||
- [ ] **6.7** Erste Messung: richtige Fundstelle unter den ersten drei (synthetische Fälle, auf
|
||||
Staging mit echten Fällen)
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Die Kriterien von M2 zur Vorprüfung sind erfüllt.
|
||||
- „Speichern, weiter“ funktioniert erst, wenn alle drei Aspekte bewertet sind.
|
||||
@@ -0,0 +1,54 @@
|
||||
# AP7 – Vorprüfung Stufe 2 mit Sprachmodell
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant, Detaillierung bis KW 47 |
|
||||
| Aufwand | 1,0 PW |
|
||||
| Zeitraum | KW 48–49 |
|
||||
| Meilenstein | M3 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Das Sprachmodell beurteilt je Nachtragsposition, ob die Leistung im Vertrag enthalten ist. Bei
|
||||
geänderter Leistung benennt es die Bezugsposition und den Unterschied. Die Begründung verweist nur
|
||||
auf Quellen, die es wirklich gibt.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Prompt-Konzept, Kontextaufbau, strukturierte Antwort mit Prüfung im Code
|
||||
- Bezugsposition mit Textvergleich, Begründung mit Quellen
|
||||
- Verbrauchs- und Kostenprotokoll, Bewertung mit Testfällen
|
||||
|
||||
**Nicht enthalten:**
|
||||
- Rechtliche Einordnung (A12)
|
||||
- Preisbewertung (Phase 2)
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- AP6
|
||||
- C6 (Modell, Kontext, strukturierte Ausgabe)
|
||||
- A6 (Bezugsposition im Nachtrag genannt?), A12
|
||||
|
||||
## Schritte (grob)
|
||||
|
||||
- [ ] **7.1** Prompt-Konzept `docs/prompts.md`:
|
||||
- Rolle und Aufgabe, Ausgabe-Schema
|
||||
- Regel „nur aus den gelieferten Quellen“
|
||||
- Dokumentinhalte als Daten, nicht als Anweisungen
|
||||
- [ ] **7.2** Kontextaufbau: Position, beste Fundstellen, passende Vorbemerkungen, später Regeln
|
||||
und Referenzfälle; Grenze der Kontextlänge
|
||||
- [ ] **7.3** Aufruf und Prüfung der Antwort:
|
||||
- JSON-Schema, gültige Werte, zitierte Quellen müssen existieren
|
||||
- eine Wiederholung bei ungültiger Antwort, sonst Rückfall auf Stufe 1
|
||||
- [ ] **7.4** Bezugsposition und Unterschied: Textvergleich im Code, Anzeige als Abweichung
|
||||
- [ ] **7.5** Anzeige in der Prüfmaske:
|
||||
- Einschätzung „Im Vertrag“ und Vorschlag zum Prüfergebnis
|
||||
- Begründung mit anklickbaren Quellen
|
||||
- [ ] **7.6** Bewertung: synthetische Testfälle lokal; echte Fälle als Kennzahlen auf Staging
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Die Kriterien von M3 zur Prüfmaske sind erfüllt.
|
||||
- Keine Begründung verweist auf eine Quelle, die es nicht gibt (Test).
|
||||
@@ -0,0 +1,42 @@
|
||||
# AP8 – Regeln, Referenzfälle, Freigaben
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant, Detaillierung bis KW 48 |
|
||||
| Aufwand | 0,75 PW |
|
||||
| Zeitraum | KW 49–50 |
|
||||
| Meilenstein | M3 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Aus Korrekturen werden Regeln. Sie verbessern künftige Vorschläge im passenden Geltungsbereich und
|
||||
werden je nach Einstellung freigegeben. Bestätigte Fälle dienen als Referenzfälle.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Regeln mit Situation, Regel, Geltungsbereich, Status und Versionen
|
||||
- Regeldialog, Freigabe-Einstellungen (Voreinstellungen), Wissensbasis-Reiter
|
||||
- Referenzfälle; Kennzeichnung „zur Überprüfung“ bei mehrfacher Überstimmung
|
||||
|
||||
**Nicht enthalten:** Training von Modellen.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- AP6, AP7
|
||||
- A23 (projektübergreifende Regeln?), A24 (Freigabe-Variante)
|
||||
|
||||
## Schritte (grob)
|
||||
|
||||
- [ ] **8.1** Datenmodell Regeln und Versionen; Geltungsbereich Vertrag → PFA → Projekt →
|
||||
Auftraggeber → Land; nie löschen
|
||||
- [ ] **8.2** Regeldialog aus der Prüfmaske: Vorformulierung, ähnliche Regeln
|
||||
- [ ] **8.3** Freigabe-Einstellungen und Warteschlange „Zur Freigabe“
|
||||
- [ ] **8.4** Regeln und Referenzfälle in Suche und Prompt einbeziehen; die speziellere Regel gewinnt
|
||||
- [ ] **8.5** Wissensbasis: Regeln, Zur Freigabe, Referenzfälle, Allgemeine Dokumente
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Eine Regel aus einer Korrektur wirkt nach der Freigabe beim nächsten passenden Fall und wird dort
|
||||
als Quelle angezeigt.
|
||||
@@ -0,0 +1,36 @@
|
||||
# AP9 – Ergebnisliste und Export
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant, Detaillierung bis KW 49 |
|
||||
| Aufwand | 0,25 PW |
|
||||
| Zeitraum | KW 50 |
|
||||
| Meilenstein | M3 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Für jeden Nachtrag gibt es eine Ergebnisliste aller Positionen, die sich als Excel exportieren
|
||||
und in die Bewertungsmatrix übertragen lässt.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:** Bearbeitungsstand des Nachtrags, Ergebnisliste, Excel-Export (PhpSpreadsheet),
|
||||
Liste der Exporte, „Nachtrag abschließen“.
|
||||
|
||||
**Nicht enthalten:** Bewertungsmatrix in der DB-Vorlage und Stellungnahme (Optionen).
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
AP6, AP7; A9 (Werte), A14 (Spalten der Matrix als Orientierung).
|
||||
|
||||
## Schritte (grob)
|
||||
|
||||
- [ ] **9.1** Bearbeitungsstand eingegangen → vorgeprüft → in Prüfung → geprüft → exportiert
|
||||
- [ ] **9.2** Ergebnisliste: OZ, Kurztext, Menge/Einheit, Im Vertrag, beste Fundstelle,
|
||||
Prüfergebnis, Kommentar
|
||||
- [ ] **9.3** Excel-Export und Exportprotokoll
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Der Export eines Nachtrags enthält alle Positionen mit Prüfergebnis und Fundstelle.
|
||||
@@ -0,0 +1,38 @@
|
||||
# AP10 – Dashboard, Benachrichtigungen, Auswertungen
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant, Detaillierung bis KW 46 |
|
||||
| Aufwand | 0,5 PW |
|
||||
| Zeitraum | KW 47 (Dashboard), KW 2/2027 (Auswertungen) |
|
||||
| Meilenstein | M2, M4 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Jeder sieht beim Einstieg seine offenen Nachträge und wird benachrichtigt, wenn etwas fertig ist.
|
||||
Die Auswertungen zeigen, wie gut die Vorschläge sind.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Dashboard (Variante 1a aus Claude Design)
|
||||
- Benachrichtigungen in der Anwendung, optional per E-Mail
|
||||
- Auswertungen: Trefferquote, Treffsicherheit je KI-Sicherheit, überstimmte Regeln, Prüfzeit
|
||||
- Allgemeine Dokumente in den Einstellungen
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
AP6; B3 (E-Mail-Absender).
|
||||
|
||||
## Schritte (grob)
|
||||
|
||||
- [ ] **10.1** Dashboard: offene Nachträge, „vorgeprüft – bereit“, Verarbeitung, Freigaben
|
||||
- [ ] **10.2** Benachrichtigungen: Vorprüfung fertig oder fehlgeschlagen, Nachtrag zugewiesen,
|
||||
Regel zur Freigabe
|
||||
- [ ] **10.3** Auswertungen (KW 2)
|
||||
- [ ] **10.4** Allgemeine Dokumente (Einstellungen, projektübergreifend)
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Die Kennzahlen der Auswertungen stimmen mit einer Nachzählung auf Testdaten überein.
|
||||
@@ -0,0 +1,74 @@
|
||||
# AP11 – Betrieb
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | in Arbeit (11a.1 erledigt); Schritte ab 11a.2 detailliert, warten auf Freigabe |
|
||||
| Aufwand | 0,5 PW (wir) + 1–1,5 PW (ITM-Entwickler) |
|
||||
| Zeitraum | KW 41–44 (Staging), KW 50–51 (Produktion), KW 3/2027 (Restore-Test) |
|
||||
| Meilenstein | M2 (Staging), M3 (Produktion), M4 (abgesichert) |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Staging und Produktion laufen auf den Servern von ITM, werden reproduzierbar bereitgestellt,
|
||||
gesichert und überwacht. Ein Ausfall fällt auf, bevor BauIn ihn bemerkt.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- **11a, wir:**
|
||||
- Server-Anforderungen
|
||||
- Vorlagen für Nginx, systemd und Cron
|
||||
- Deploy-Skript
|
||||
- Lebenszeichen- und Prüfbefehle
|
||||
- Backup-Skript
|
||||
- Betriebsdoku
|
||||
- **11b, ITM-Entwickler:**
|
||||
- Server aufsetzen, Domain und Zertifikat
|
||||
- Backup-Ziel, Überwachung
|
||||
- Restore-Test gemeinsam mit uns
|
||||
|
||||
**Nicht enthalten:** Hochverfügbarkeit, mehrere Server.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
C10 (Ausstattung, Root-Zugang), B2 (Zugriff Internet/VPN), B3 (Domain, Mail), B5 und C10 (Backups),
|
||||
C12 (wer deployt).
|
||||
|
||||
## Entscheidungen
|
||||
|
||||
| Nr. | Frage | Vorschlag | Entschieden |
|
||||
|---|---|---|---|
|
||||
| E11.1 | Deployment | Skript auf dem Server mit Versionsverzeichnissen (`releases/`, `current`), ausgelöst per SSH | offen |
|
||||
| E11.2 | Backup-Werkzeug | restic, verschlüsselt, Ziel von ITM | offen (B5) |
|
||||
| E11.3 | Alarmierung | E-Mail an dich und den ITM-Entwickler | offen |
|
||||
|
||||
## Schritte
|
||||
|
||||
- [x] **11a.1** Server-Anforderungen `docs/server-anforderungen.md`
|
||||
- [ ] **11a.2** Vorlagen in `deploy/`:
|
||||
- Nginx-Server-Block, systemd-Units (Worker, Meilisearch), Cron-Zeile
|
||||
- Beispiel für `.env` ohne Werte
|
||||
- [ ] **11a.3** Deploy-Skript nach E11.1 mit Prüfungen (Migration, Caches, Neustart der Worker),
|
||||
zuerst gegen eine lokale Test-VM oder direkt auf Staging
|
||||
- [ ] **11a.4** Betriebsbefehle:
|
||||
- Lebenszeichen für Worker und Scheduler
|
||||
- Zählung fehlgeschlagener Jobs
|
||||
- Statusprüfung der KI-API (aus AP3)
|
||||
- Mail bei Problemen (E11.3)
|
||||
- [ ] **11b.1** Staging aufsetzen (ITM-Entwickler, KW 42–44), erstes Deployment gemeinsam
|
||||
- [ ] **11a.5** Backup-Skript nach E11.2 und Betriebsdoku `docs/betrieb.md`:
|
||||
- Deployment, Wiederherstellung, `APP_KEY` sicher aufbewahren
|
||||
- [ ] **11b.2** Produktion aufsetzen (KW 50–51)
|
||||
- [ ] **11a.6 / 11b.3** Restore-Test auf einem Ersatzsystem (KW 3), Protokoll in `docs/betrieb.md`
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Ein Deployment aus dem Gitea auf Staging klappt mit einem Befehl.
|
||||
- Ein absichtlich gestoppter Worker löst innerhalb von 10 Minuten eine Mail aus.
|
||||
- Der Restore-Test war erfolgreich und ist dokumentiert.
|
||||
|
||||
## Risiken
|
||||
|
||||
- Antworten von ITM zu Zugang und Ausstattung kommen spät. Dann Staging per Bildschirmfreigabe
|
||||
gemeinsam aufsetzen.
|
||||
@@ -0,0 +1,40 @@
|
||||
# AP12 – Pilot und Messung
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant, Detaillierung bis KW 51 |
|
||||
| Aufwand | 1,5 PW |
|
||||
| Zeitraum | KW 1–2/2027 |
|
||||
| Meilenstein | M4 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Alle Nachträge des Pilot-PFA laufen durch das System. Trefferquote und Zeitersparnis sind
|
||||
gemessen, und die Vorschläge sind anhand der Ergebnisse nachgeschärft.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Messplan, Messskripte (nur Kennzahlen), Durchlauf mit BauIn
|
||||
- Nachschärfen: Prompts, Gewichtung, Quantisierung, Kandidatenzahl
|
||||
- Abschlussbericht
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
AP6–AP9; A20 (Referenzfälle), A21 (Erfolgskriterium); Fachexperte verfügbar.
|
||||
|
||||
## Schritte (grob)
|
||||
|
||||
- [ ] **12.1** Messplan (KW 51):
|
||||
- Kennzahlen: richtige Fundstelle unter den ersten drei, Übereinstimmung des Prüfergebnisses,
|
||||
Prüfzeit je Nachtrag
|
||||
- Vergleich mit dem Stand vorher
|
||||
- [ ] **12.2** Messskripte für Staging bzw. Produktion, ohne Inhalte
|
||||
- [ ] **12.3** Durchlauf (KW 1) mit Bewertung durch den Fachexperten
|
||||
- [ ] **12.4** Nachschärfen (KW 2) und erneute Messung
|
||||
- [ ] **12.5** Abschlussbericht `docs/pilot-bericht.md` für M4
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Die Kriterien von M4 zu den Kennzahlen sind erfüllt bzw. dokumentiert.
|
||||
@@ -0,0 +1,78 @@
|
||||
# AP13 – Designsystem aus Claude Design
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | detailliert, wartet auf Freigabe |
|
||||
| Aufwand | 0,5 PW |
|
||||
| Zeitraum | KW 43 |
|
||||
| Meilenstein | M1 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Die Anwendung sieht aus wie der Prototyp von Claude Design: Farben, Schriften, Abstände,
|
||||
Statussysteme, App-Rahmen. Bestehende und künftige Seiten nutzen dieselben Bausteine.
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:**
|
||||
- Design-Tokens mit Hell- und Dunkelmodus
|
||||
- Schriften und Icons lokal
|
||||
- TallStackUI anpassen
|
||||
- Eigene Komponenten für die Statussysteme
|
||||
- Sidebar und Topbar
|
||||
- Musterseite zum Abgleich
|
||||
|
||||
**Nicht enthalten:** Einzelne Fachseiten; diese entstehen in ihren Arbeitspaketen mit den hier
|
||||
gebauten Bausteinen.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
Neuer Stand von Claude Design nach unserer Rückmeldung (`Rueckmeldung_an_ClaudeDesign_2026-10-02.md`).
|
||||
Benötigt werden die Übergabe (Abschnitte 1–9) und die `.dc.html`-Dateien. Bisheriger Stand:
|
||||
`ClaudeDesign_Stand_2026-10-02.md` im Planungsordner.
|
||||
|
||||
## Entscheidungen
|
||||
|
||||
| Nr. | Frage | Vorschlag | Entschieden |
|
||||
|---|---|---|---|
|
||||
| E13.1 | Schriften | League Spartan und IBM Plex über `@fontsource`-Pakete, lokal gebündelt | offen |
|
||||
| E13.2 | Icons | Phosphor über das Blade-Paket `codeat3/blade-phosphor-icons` (MIT), in TallStackUI als Icon-Typ eingebunden | offen |
|
||||
| E13.3 | Ablage der Entwürfe im Repository | `docs/design/` mit Übergabe und `.dc.html` (nur erfundene Daten) | offen |
|
||||
|
||||
## Schritte
|
||||
|
||||
- [ ] **13.1** Stand von Claude Design in `docs/design/` ablegen (E13.3), Unterschiede zur
|
||||
Rückmeldung notieren
|
||||
- [ ] **13.2** Design-Tokens als CSS-Variablen (hell und dunkel) und Tailwind-Theme
|
||||
- [ ] **13.3** Schriften (E13.1) und Icons (E13.2) einbinden; `NoExternalResourcesTest` bleibt grün
|
||||
- [ ] **13.4** TallStackUI anpassen: Buttons, Eingabefelder, Select, Karte, Dialog, Tabelle,
|
||||
Toast, Badge (Radien, Farben, Größen)
|
||||
- [ ] **13.5** Eigene Komponenten:
|
||||
- KI-Sicherheit (`x-confidence`)
|
||||
- Prüfergebnis-Plakette
|
||||
- Regelstatus-Etikett
|
||||
- Bearbeitungsstand mit 5 Punkten
|
||||
- KI-Vorschlag-Pille
|
||||
- Zustände leer, lädt, Fehler, kein Zugriff
|
||||
- [ ] **13.6** App-Rahmen: Sidebar mit Gruppen Arbeit, Wissen, System; Topbar mit Suche,
|
||||
Benachrichtigungen, Benutzer; Länderwahl nur bei mehreren Ländern
|
||||
- [ ] **13.7** Musterseite „Designsystem“ (nur in der Entwicklung) und Abgleich mit dem Prototyp
|
||||
per Screenshot; bestehende Seiten (Login, Einstellungen, AP1-Seiten) umstellen
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- Die Musterseite entspricht dem Designsystem des Prototyps in Hell und Dunkel.
|
||||
- Alle Statussysteme sind ohne Farbe unterscheidbar (Symbol und Text).
|
||||
- Es werden keine externen Ressourcen geladen.
|
||||
|
||||
## Tests
|
||||
|
||||
- `NoExternalResourcesTest` auf allen Seiten
|
||||
- Blade-Komponenten-Tests für Status und Zustände
|
||||
- Übersetzungsabdeckung
|
||||
|
||||
## Risiken
|
||||
|
||||
- Claude Design liefert spät. Dann mit dem bisherigen Stand beginnen; die Prüfmaske kommt ohnehin
|
||||
erst in AP6.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Optionen OP1 und OP2
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant; Umsetzung nur nach Beauftragung und mit Vorlage |
|
||||
| Aufwand | je 0,5 PW |
|
||||
| Zeitraum | OP1 KW 51, OP2 KW 2/2027 (bei 35–40 h pro Woche), sonst nach M4 |
|
||||
| Freigabe | offen |
|
||||
|
||||
## OP1 – Bewertungsmatrix in der Excel-Vorlage der DB
|
||||
|
||||
**Ziel:** Die Ergebnisse eines Nachtrags werden direkt in die Bewertungsmatrix der DB geschrieben.
|
||||
|
||||
**Voraussetzungen:** A14 (Vorlage leer und ausgefüllt, Spalten und Reiter, Makros?).
|
||||
|
||||
**Schritte (grob):**
|
||||
- [ ] **OP1.1** Vorlage untersuchen. Bleiben die Makros erhalten, wenn PhpSpreadsheet die Datei
|
||||
schreibt? Falls nicht: Werte so exportieren, dass sie sich in die Vorlage einfügen lassen.
|
||||
- [ ] **OP1.2** Zuordnung Spalten ↔ Daten mit dir und BauIn abstimmen
|
||||
- [ ] **OP1.3** Export und Test mit einem Beispielnachtrag
|
||||
|
||||
## OP2 – Stellungnahme BÜW als Word-Datei
|
||||
|
||||
**Ziel:** Das Deckblatt zur Bewertungsmatrix (Ansprechpartner, Bearbeiter, Nachtrag, Sachverhalt)
|
||||
wird aus der Vorlage erzeugt.
|
||||
|
||||
**Voraussetzungen:** A15 (Vorlage, `.docx`, variable Felder).
|
||||
|
||||
**Schritte (grob):**
|
||||
- [ ] **OP2.1** Vorlage in `.docx` mit Platzhaltern (einmalige Umwandlung)
|
||||
- [ ] **OP2.2** Felder befüllen (PHPWord-TemplateProcessor), Test
|
||||
@@ -0,0 +1,47 @@
|
||||
# APx – Titel
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | grob geplant / detailliert (wartet auf Freigabe) / freigegeben / in Arbeit / erledigt |
|
||||
| Aufwand | x PW (mit Claude Code) |
|
||||
| Zeitraum | KW … |
|
||||
| Meilenstein | M… |
|
||||
| Freigabe | Datum, durch wen |
|
||||
|
||||
## Ziel
|
||||
|
||||
Ein bis drei Sätze: Was kann man danach, das vorher nicht ging?
|
||||
|
||||
## Umfang
|
||||
|
||||
**Enthalten:** …
|
||||
|
||||
**Nicht enthalten:** …
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
Andere Arbeitspakete, Zulieferungen, Fragen aus `docs/fragen.md` (mit ID).
|
||||
|
||||
## Entscheidungen
|
||||
|
||||
| Nr. | Frage | Vorschlag | Entschieden |
|
||||
|---|---|---|---|
|
||||
| Ex.1 | … | … | offen |
|
||||
|
||||
## Schritte
|
||||
|
||||
Je Schritt höchstens ein Tag, mit prüfbarem Ergebnis.
|
||||
|
||||
- [ ] **x.1** … → Ergebnis: …
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- …
|
||||
|
||||
## Tests
|
||||
|
||||
- …
|
||||
|
||||
## Risiken
|
||||
|
||||
- …
|
||||
Reference in New Issue
Block a user