Projektplan und Tech-Stack nach erster Besprechung mit BauIn angepasst

- Geprüft werden Nachträge je Position: "im Vertrag enthalten?" mit Fundstellen
- Gliederung Projekt → PFA → Vertrag → LVs, Suchreihenfolge über PFAs
- GAEB X86 als Grundlage, PDF zur Anzeige; LV-Suche als Meilenstein M2
- KI-API ITM über API-Werk: Sprachmodell vorhanden, Polling statt Webhook
- Bewertungsmatrix und Stellungnahme als Optionen; Höhe Phase 2, Regelwerk Phase 3
- Termine: 16.10. BauIn, M1 30.10., M2 20.11., M3 18.12., M4 29.01.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Christoph
2026-10-02 15:00:29 +02:00
co-authored by Claude Opus 5.5
parent 558e698e3b
commit 56eb2ea455
2 changed files with 165 additions and 89 deletions
+147 -79
View File
@@ -1,102 +1,156 @@
# KI-BauIN – Projekt- und Zeitplan (MVP) # KI-BauIN – Projekt- und Zeitplan (Phase 1)
Stand: 1. Oktober 2026 (KW 40). Wird nach dem Kundentermin (KW 42) zum Detailplan geschärft. Stand: 2. Oktober 2026 (KW 40), nach der ersten Besprechung mit BauIN und der API-Dokumentation
von ITM. Sobald die Antworten auf den Fragenkatalog vorliegen (Ziel: Termin am 16.10.), wird
daraus der Detailplan mit Teilplänen je Arbeitspaket.
## Beteiligte ## Beteiligte
- **ITM:** Anbieter der KI-API (OCR, Embeddings, Reranker, ggf. Sprachmodell), Projektleitung und - **ITM:** Anbieter der KI-API (über API-Werk: Dokumentdienst mit OCR, Embeddings, Reranker,
abrechnende Firma. Stellt auch die Server (Staging, Produktion) und den Gitea, auf den das Sprachmodell), Projektleitung und abrechnende Firma. Stellt auch die Server (Staging,
Repository gespiegelt wird. Produktion) und den Gitea, auf den das Repository gespiegelt wird.
- **BauIn:** Endkunde. Liefert Fachdaten (LVs, MKAs, Bewertungsmatrizen), stellt den Fachexperten - **BauIn:** Endkunde. Prüft als Bauüberwachung im Auftrag der DB die Nachträge der
und nutzt das System. Auftragnehmer dem Grunde nach. Liefert Fachdaten (LVs, Nachträge, Bewertungsmatrizen),
stellt den fachlichen Ansprechpartner (Nachtragsbearbeitung) und eine Ansprechpartnerin für IT.
- „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM. - „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM.
## Ergebnis der Besprechung vom 02.10.2026
Was sich gegenüber dem Stand vom 01.10. ändert:
- **Geprüft werden Nachträge, nicht MKAs.** Aus einer MKA entsteht (oder auch nicht) nach
einigen Wochen ein Nachtrag; das ist nicht 1:1. Der Nachtrag enthält ein Nachtrags-LV mit
Positionen (GAEB und PDF), ein Anschreiben, die Kalkulation und Anlagen. Die MKA-Nummer ist nur
noch ein Bezug am Nachtrag.
- **Die KI beantwortet je Nachtragsposition eine Frage:** Ist die Leistung schon im Vertrag
enthalten, also in den LVs einschließlich Vorbemerkungen? Wenn ja, ist der Nachtrag dem Grunde
nach nicht berechtigt. Schwerpunkt sind geänderte Leistungen (§ 2 Abs. 5 VOB/B, mit Rückgriff
auf eine Hauptvertragsposition) und zusätzliche Leistungen (§ 2 Abs. 6 VOB/B). Mengenänderungen
(§ 2 Abs. 3) kommen selten vor und bekommen keine eigene Logik.
- **Nicht Aufgabe der KI:** die rechtliche Einordnung (richtiger Paragraf), Fristen und
Vollständigkeit der Anzeige, Leistungen ohne Auftrag (§ 2 Abs. 8), Behinderungen (§ 6 Abs. 6),
Anordnungen des Auftraggebers. Das prüft BauIn selbst.
- **Gliederung:** Projekt → PFA (Planfeststellungsabschnitt, im Pilot PFA 1–4) → Vertrag mit
einem Auftragnehmer (je PFA mehrere, z. B. Gleisbau, Tunnelbau, Oberleitung) → mehrere LVs
(im PFA 4 z. B. 28). Ein „Los“ im bisherigen Plan entspricht einem Vertrag.
- **Suchreihenfolge:** zuerst die LVs des betroffenen Vertrags, dann als Hinweis die anderen PFAs
desselben Projekts (Fall: Leistung im PFA 3 beauftragt, im PFA 4 vergessen und dort per
Nachtrag zum doppelten Preis angeboten). Nie projektübergreifend. Ob auch die übrigen Verträge
im selben PFA durchsucht werden, ist offen.
- **Daten:** Jedes LV liegt als GAEB (X86 und D86) und als PDF vor, erzeugt aus dem
Kalkulationsprogramm. Grundlage ist die X86-Datei (strukturiert, ohne Texterkennung); das PDF
dient der Anzeige mit Sprung zur Fundstelle. OCR über die KI-API braucht es nur noch für
PDFs ohne GAEB-Datei (Anschreiben, Scans).
- **Sprachmodell ist vorhanden** (`chat`, `chat-noreasoning`, Kontext laut ITM 128K). Damit ist
die KI-Beurteilung (Stufe 2) fest eingeplant.
- **Bewertungsmatrix (Excel der DB) und Stellungnahme (Word) sind Optionen**, nicht Kern von
Phase 1. Vorlagen kommen von BauIn.
- **Die Prüfung der Höhe nach ist Phase 2**, das Regelwerk mit Chat Phase 3 (siehe unten).
- **Zusammenarbeit:** Termine freitags über Teams; nächster Termin am **16.10.2026** mit
Statusbericht und Kostenrahmen für Phase 1.
## Rahmen und Annahmen ## Rahmen und Annahmen
- **Ziel des MVP:** Nachtragsprüfung „dem Grunde nach“ am Pilotprojekt, von der hochgeladenen - **Ziel von Phase 1:** Positionsanalyse dem Grunde nach am Pilotprojekt. Vom hochgeladenen
MKA bis zur exportierten Bewertungsmatrix, mit Rollen und Rechten, Protokoll und lokalem Betrieb. Nachtrag bis zur Ergebnisliste je Position mit Fundstellen, Begründung und Entscheidung des
- **Nicht im MVP:** Prüfung der Höhe nach (inkl. Mengenvergleich aus D11), DMS und E-Mail-Anbindung, Bearbeiters, mit Rollen und Rechten, Protokoll und Betrieb auf den Servern von ITM.
Österreich, Bauzeitenplan-Analyse (siehe „Später“). - **Grundhaltung:** Die KI schlägt vor und belegt mit Fundstellen, der Mensch entscheidet.
- **Aufwand:** rund 25 Personenwochen (PW), mit Risikopuffer 28–29 PW. Rückmeldungen fließen in ein Confidence-System mit Referenzfällen und Regeln.
- **Aufwand:** Kern rund 24 Personenwochen (PW), mit Risikopuffer 27–28 PW. Optionen
zusätzlich (siehe Arbeitspakete).
- **Team (Annahme):** zwei Entwickler mit KI-Unterstützung. - **Team (Annahme):** zwei Entwickler mit KI-Unterstützung.
- **A** (du): Backend, KI-Anbindung, Suche, Prüflogik - **A** (du): Backend, KI-Anbindung, Suche, Prüflogik
- **B** (Kollege): Oberfläche mit TallStackUI, GAEB-Import, Betrieb - **B** (noch zu klären): Oberfläche mit TallStackUI, GAEB-Import, Betrieb
- Mit nur einem Entwickler verdoppelt sich die Dauer ab Phase 2 (siehe Variante unten). - Mit nur einem Entwickler verdoppelt sich die Dauer ab KW 44 (siehe Variante unten).
- **Pause:** KW 52–53 (21.12.2026 – 03.01.2027). - **Pause:** KW 52–53 (21.12.2026 – 03.01.2027).
- **Abhängigkeit:** Viele Pakete brauchen Zulieferungen von ITM (KI-API) und BauIn (Fachdaten, - **Echte Daten:** Entwickelt wird mit öffentlichen GAEB-Beispieldateien und einem
Fachexperte). Kommen sie später als unten geplant, verschiebt sich der Plan entsprechend. anonymisierten Beispielablauf von BauIn. Echte Pilotdaten nur auf den Servern von ITM und
erst nach Klärung des Datenschutzes.
- **Abhängigkeit:** Viele Pakete brauchen Zulieferungen von ITM und BauIn. Kommen sie später als
unten geplant, verschiebt sich der Plan entsprechend.
## Meilensteine ## Meilensteine
| | Termin | Ergebnis | Termin mit dem Kunden | | | Termin | Ergebnis | Termin mit dem Kunden |
|---|---|---|---| |---|---|---|---|
| **M1** | Ende KW 43 (23.10.) | Grundgerüst: Login/2FA, Benutzer und Rollen, Projekte und Lose, Upload, Protokoll; Detailplan steht | Demo (30 min) | | – | Fr 16.10. | Statusbericht mit Screenshots, Plan, Kostenrahmen, offene Fragen | Termin BauIn |
| **M2** | Ende KW 47 (20.11.) | Pilot-LVs importiert und durchsuchbar, erste ~5 Dokumente gemeinsam mit „passt / passt nicht“ bewertet; Staging bei ITM läuft | Prüftermin (60 min) | | **M1** | Fr 30.10. (KW 44) | Grundgerüst: Login/2FA, Benutzer und Rollen, Projekte mit PFA und Verträgen, Upload, Protokoll; Detailplan steht | Demo (30 min) |
| **M3** | Ende KW 51 (18.12.) | Erste MKA durchgängig: Vorschläge, Feedback, Regeln, Excel-Export | Präsentation (60–90 min) | | **M2** | Fr 20.11. (KW 47) | LVs des Pilot-PFA importiert; **LV-Suche** über alle LVs eines Vertrags, PFA oder Projekts mit Sprung ins PDF nutzbar; Staging bei ITM läuft | Prüftermin (60 min) |
| **M4** | Ende KW 4/2027 (29.01.) | Alle Pilot-MKAs durchlaufen, Trefferquote und Zeitersparnis gemessen; Produktion abgesichert | Abschlusspräsentation, Entscheidung über Ausbau | | **M3** | Fr 18.12. (KW 51) | Erster Nachtrag durchgängig: Vorprüfung aller Positionen, Prüfmaske, Feedback, Regeln, Ergebnisliste | Präsentation (60–90 min) |
| Puffer | KW 5–6/2027 | für Verzögerungen bei Zulieferungen oder GAEB-Import | – | | **M4** | Fr 29.01.2027 (KW 4) | Alle Nachträge des Pilot-PFA durchlaufen, Trefferquote und Zeitersparnis gemessen; Produktion abgesichert | Abschluss, Entscheidung über Optionen und Phase 2 |
| Puffer | KW 5–6/2027 | für Verzögerungen bei Zulieferungen oder Import | – |
**Laufend:** wöchentlich 30 min Jour fixe mit dem Fachexperten; alle zwei Wochen eine kurze Demo Die LV-Suche (M2) nützt BauIn schon vor der KI-Beurteilung: Heute werden bis zu 28 LVs einzeln
(KW 43, 45, 47, 49, 51, 2, 4). nach Stichworten durchsucht.
**Laufend:** Termine mit BauIn freitags, etwa alle zwei Wochen, vorher ein kurzer Statusbericht
mit Screenshots.
## Arbeitspakete und Aufwand ## Arbeitspakete und Aufwand
| AP | Inhalt | PW | Wer | Wann | Hängt ab von | | AP | Inhalt | PW | Wer | Wann | Hängt ab von |
|---|---|---|---|---|---| |---|---|---|---|---|---|
| AP0 | Klärung, Kundentermine, Jour fixe, Dokumentation | 1,0 | A+B | laufend | – | | AP0 | Klärung, Kundentermine, Statusberichte, Dokumentation | 1,0 | A+B | laufend | – |
| AP1 | Fundament: Umgebung ✓, Laravel/TallStackUI ✓, Mehrsprachigkeit ✓, CI, Datenmodell (Mandant, Land, Projekt, Los, Dokument), Rollen/Rechte mit Benutzerverwaltung, privater Upload und Download, Protokoll, Länderstruktur | 4,0 (1,0 erledigt) | A+B | KW 40–43 | Rollenmodell (Kunde) | | AP1 | Fundament: Umgebung ✓, Laravel/TallStackUI ✓, Mehrsprachigkeit ✓, CI, Datenmodell (Mandant, Land, Projekt, PFA, Vertrag, LV, Dokument, Nachtrag, Nachtragsposition), Rollen/Rechte mit Benutzerverwaltung, privater Upload und Download inkl. Massen-Upload, Protokoll, Länderstruktur | 4,0 (1,0 erledigt) | A+B | KW 40–44 | Rollenmodell (Kunde) |
| AP2 | Meilisearch-Test: Teil 1 mit erzeugten Vektoren, Teil 2 mit echten Vektoren und Referenzfällen | 0,5 | A | KW 41 / KW 46–47 | Teil 2: API-Zugang (ITM), Referenz-MKAs (BauIn) | | AP2 | Meilisearch-Test: Teil 1 mit erzeugten Vektoren, Teil 2 mit echten Vektoren und Referenzfällen | 0,5 | A | KW 41 / KW 46–47 | Teil 2: API-Schlüssel (ITM), Referenzfälle (BauIn) |
| AP3 | Anbindung KI-API ITM: Client für OCR, Embeddings, Reranker (+ LLM), Jobs mit Wiederholung und Status, Überwachung, ggf. Webhook-Eingang | 1,5 | A | KW 44–45 | API-Doku und Testzugang (ITM) | | AP3 | Anbindung KI-API ITM (API-Werk): Dokumentdienst mit Polling, `embed`, `rerank`, `chat` mit Streaming; Ratenbegrenzung (120/min je Schlüssel), begrenzte Wiederholung ohne Doppel-Einreichung, Verbrauchsprotokoll, Überwachung | 1,5 | A | KW 41 (Test), KW 44 | API-Schlüssel (ITM) |
| AP4 | Dokumentverarbeitung und Suche: OCR → Abschnitte → Embeddings → MySQL + Meilisearch, Neuaufbau des Index, hybride Suche mit Pflichtfilter für Rechte | 2,0 | A | KW 45–47 | AP3 | | AP4 | Indexierung und Suche: LV-Positionen und Vorbemerkungen aus GAEB, Texte aus PDFs ohne GAEB → Embeddings → MySQL + Meilisearch; hybride LV-Suche mit Pflichtfilter für Rechte und Suchreihenfolge (Vertrag → PFA → Projekt); Neuaufbau des Index | 2,0 | A | KW 45–47 | AP3, AP5 |
| AP5 | GAEB-Import (D86/X86): Parser, LV-Baum, Vorbemerkungen, LV-Ansicht, MKA-Import (PDF + GAEB) | 2,5 | B | KW 44–46 | Beispieldateien | | AP5 | GAEB-Import (X86): Parser, LV-Baum, Vorbemerkungen, LV-Ansicht; PDF-Anzeige (pdf.js lokal) mit Sprung zur Position; Nachtrags-Import (Nachtrags-LV als X86, sonst PDF über OCR) | 2,5 | B | KW 41 (Test), KW 44–46 | Beispieldateien |
| AP6 | Prüfassistent Stufe 1 (ohne LLM): Vergleichspositionen mit Reranker, Prüfmaske, Feedback je Aspekt, Confidence | 2,5 | A+B | KW 48–49 | AP4, AP5 | | AP6 | Vorprüfung Stufe 1 (ohne Sprachmodell): je Nachtragsposition Fundstellen mit Reranker, Nachtragsübersicht, Prüfmaske, Feedback je Aspekt, Confidence | 2,5 | A+B | KW 48–49 | AP4, AP5 |
| AP7 | Prüfassistent Stufe 2 (mit LLM): Prompts, strukturierte Antwort, Prüfung der Antwort, Begründung mit Quellen | 2,0 | A | KW 50–51 | LLM-Zugang (ITM) | | AP7 | Vorprüfung Stufe 2 (mit Sprachmodell): „im Vertrag enthalten?“, Bezugsposition und Unterschied bei geänderter Leistung, Begründung mit Quellen, Prüfung der Antwort | 2,0 | A | KW 50–51 | AP6 |
| AP8 | Regeln, Referenzfälle, einstellbare Freigaben, Versionen | 2,0 | B | KW 50–51 | Freigabe-Variante (Kunde) | | AP8 | Regeln, Referenzfälle, einstellbare Freigaben, Versionen | 2,0 | B | KW 50–51 | Freigabe-Variante (Kunde) |
| AP9 | Bewertungsmatrix, MKA-Status, Freigabe durch Projektleiter, Excel-Export | 1,0 | B | KW 51 | Matrix-Vorlage | | AP9 | Nachtragsstatus, Ergebnisliste je Nachtrag, einfacher Excel-Export | 0,5 | B | KW 51 | – |
| AP10 | Wissensbasis-Oberfläche, Dashboard, Benachrichtigungen, Auswertungen | 1,0 | B | KW 47, KW 2 | – | | AP10 | Dashboard, Benachrichtigungen, Auswertungen, allgemeine Dokumente (Einstellungen) | 0,75 | B | KW 47, KW 2 | – |
| AP11 | Betrieb: Staging und Produktion (Nginx, PHP-FPM, systemd, Cron, Meilisearch), Deployment, verschlüsselte Backups, Alarmierung, Restore-Test | 1,5 | B | KW 46–47, KW 3 | VMs, Backup-Ziel | | AP11 | Betrieb: Staging und Produktion (Nginx, PHP-FPM, systemd, Cron, Meilisearch), Deployment, verschlüsselte Backups, Alarmierung, Restore-Test | 1,5 | B | KW 46–47, KW 3 | Server (ITM), Backup-Ziel |
| AP12 | Pilot: alle MKAs durchlaufen, messen, nachschärfen (Prompts, Gewichtung, Quantisierung) | 2,0 | A+B | KW 1–3/2027 | Referenzfälle, Fachexperte | | AP12 | Pilot: alle Nachträge des Pilot-PFA durchlaufen, messen, nachschärfen (Prompts, Gewichtung, Quantisierung) | 2,0 | A+B | KW 1–3/2027 | Referenzfälle, Fachexperte |
| AP13 | Design aus Claude Design als TallStackUI-Designsystem übernehmen | 1,0 | B | KW 42–43 | Designentwurf | | AP13 | Design aus Claude Design als TallStackUI-Designsystem übernehmen | 1,0 | B | KW 42–43 | Designentwurf |
| | **Summe** | **≈ 24,5** | | | | | | **Summe Kern** | **≈ 23,75** | | | |
| OP1 | Option: Bewertungsmatrix in der Excel-Vorlage der DB füllen | 1,0 | B | KW 2–3 | Vorlage (BauIn) |
| OP2 | Option: Stellungnahme BÜW als Word-Datei aus Vorlage | 1,0 | B | nach M4 oder Puffer | Vorlage (BauIn) |
Gegenüber dem Stand vom 01.10. entfallen der GAEB-90-Import (D86), der Webhook-Eingang, der
Vorschlag einer Anspruchsgrundlage und die kuratierte Wissensbasis (wird Phase 3). Dazu kommen
PDF-Anzeige mit Sprung zur Position, Massen-Upload, Suchreihenfolge über PFAs und die Bezugsposition.
## Zeitplan nach Kalenderwochen (2 Entwickler) ## Zeitplan nach Kalenderwochen (2 Entwickler)
| KW | Datum | A (Backend, KI, Suche) | B (Oberfläche, Import, Betrieb) | Kunde / gemeinsam | | KW | Datum | A (Backend, KI, Suche) | B (Oberfläche, Import, Betrieb) | Kunde / gemeinsam |
|---|---|---|---|---| |---|---|---|---|---|
| 40 | 28.09.–04.10. | ✓ Umgebung, Grundgerüst, TallStackUI, Mehrsprachigkeit, Doku | – | – | | 40 | 28.09.–04.10. | ✓ Umgebung, Grundgerüst, TallStackUI, Mehrsprachigkeit, Doku | – | ✓ Besprechung BauIn (02.10.) |
| 41 | 05.–11.10. | Meilisearch-Test Teil 1; Datenmodell Kern | CI in Gitea Actions; Benutzerverwaltung beginnen | Fragenliste raus, Termin vereinbaren; Claude Design Durchgang 1 | | 41 | 05.–11.10. | Meilisearch-Test Teil 1; Datenmodell Kern; API-Schnelltest, sobald Schlüssel da | CI in Gitea Actions; Benutzerverwaltung beginnen; GAEB-X86-Test mit öffentlichen Beispieldateien | Fragenkatalog raus; Übergabe an Claude Design |
| 42 | 12.–18.10. | Upload, privater Speicher, Download mit Rechteprüfung, Vertraulichkeit | Rollen und Rechte, Projekt-Mitglieder; Design-Feedback | **Kundentermin** + Lauffenburg-Walkthrough | | 42 | 12.–18.10. | Upload, privater Speicher, Download mit Rechteprüfung, Massen-Upload | Rollen und Rechte, Projekt-Mitglieder; Design-Feedback | Aufwand an ITM (bis 14.10.); **Termin BauIn 16.10.** |
| 43 | 19.–25.10. | Detailplan nach Kundenantworten; Protokoll; Länderstruktur | Designsystem übernehmen (AP13) | **M1 Demo** | | 43 | 19.–25.10. | Detailplan und Teilpläne nach den Antworten; Protokoll; Länderstruktur | Designsystem übernehmen (AP13) | – |
| 44 | 26.10.–01.11. | Client KI-API ITM, Jobs, Status | GAEB-Parser | – | | 44 | 26.10.–01.11. | Client KI-API ITM, Jobs, Ratenbegrenzung | GAEB-Parser: LV-Baum, Vorbemerkungen | **M1 Demo 30.10.** |
| 45 | 02.–08.11. | Überwachung, Webhook-Eingang (falls nötig); Dokumentverarbeitung | GAEB: LV-Baum, Vorbemerkungen, LV-Ansicht | Demo | | 45 | 02.–08.11. | Indexierung: Positionen und Vorbemerkungen → Embeddings | LV-Ansicht, PDF-Anzeige mit Sprung zur Position | – |
| 46 | 09.–15.11. | Embeddings → MySQL + Meilisearch; Meilisearch-Test Teil 2 | MKA-Import; Staging einrichten | – | | 46 | 09.–15.11. | Hybride LV-Suche mit Rechtefilter und Suchreihenfolge; Meilisearch-Test Teil 2 | Nachtrags-Import; Staging einrichten | – |
| 47 | 16.–22.11. | Hybride Suche mit Rechte-Filter, Neuaufbau des Index | Wissensbasis-Oberfläche; Staging fertig | **M2 Prüftermin** (erste ~5 Dokumente) | | 47 | 16.–22.11. | Neuaufbau des Index; OCR für PDFs ohne GAEB | Suchoberfläche; Staging fertig, Pilot-PFA importiert | **M2 Prüftermin 20.11.** |
| 48 | 23.–29.11. | Vergleichspositionen + Reranker, Confidence | Prüfmaske | – | | 48 | 23.–29.11. | Vorprüfung: Fundstellen + Reranker, Confidence | Nachtragsübersicht, Prüfmaske | – |
| 49 | 30.11.–06.12. | Feedback-Speicherung, Referenzfälle | Prüfmaske fertig, Feedback-Oberfläche | Demo | | 49 | 30.11.–06.12. | Feedback-Speicherung, Referenzfälle | Prüfmaske fertig, Feedback-Oberfläche | Demo 04.12. |
| 50 | 07.–13.12. | LLM-Beurteilung: Prompts, strukturierte Antwort | Regeln: Dialog, Freigaben, Einstellungen | – | | 50 | 07.–13.12. | Sprachmodell: „enthalten?“, Bezugsposition, strukturierte Antwort | Regeln: Dialog, Freigaben, Einstellungen | – |
| 51 | 14.–20.12. | Begründung mit Quellen, Prüfung der Antwort | Bewertungsmatrix, Excel-Export | **M3 Präsentation** | | 51 | 14.–20.12. | Begründung mit Quellen, Prüfung der Antwort | Ergebnisliste, Excel-Export | **M3 Präsentation 18.12.** |
| 52–53 | 21.12.–03.01. | Pause | Pause | – | | 52–53 | 21.12.–03.01. | Pause | Pause | – |
| 1 | 04.–10.01. | Pilot: alle MKAs durchlaufen, messen | Pilot begleiten, Fehler beheben | Fachexperte bewertet | | 1 | 04.–10.01. | Pilot: alle Nachträge des Pilot-PFA durchlaufen, messen | Pilot begleiten, Fehler beheben | Fachexperte bewertet |
| 2 | 11.–17.01. | Nachschärfen (Prompts, Gewichtung, Quantisierung) | Dashboard, Auswertungen, Benachrichtigungen | Demo | | 2 | 11.–17.01. | Nachschärfen (Prompts, Gewichtung, Quantisierung) | Dashboard, Auswertungen; Option OP1, falls beauftragt | Demo 15.01. |
| 3 | 18.–24.01. | Feinschliff, Fehler | Produktion: Backups, Alarmierung, Restore-Test | – | | 3 | 18.–24.01. | Feinschliff, Fehler | Produktion: Backups, Alarmierung, Restore-Test | – |
| 4 | 25.–31.01. | Auswertung, Übergabe | Doku Betrieb | **M4 Abschluss** | | 4 | 25.–31.01. | Auswertung, Übergabe | Doku Betrieb | **M4 Abschluss 29.01.** |
| 5–6 | 01.–14.02. | Puffer | Puffer | – | | 5–6 | 01.–14.02. | Puffer | Puffer | – |
**Variante mit einem Entwickler:** M1 Ende KW 44, M2 Ende KW 51, M3 Ende KW 8/2027, **Variante mit einem Entwickler:** M1 Ende KW 45, M2 Ende KW 51, M3 Ende KW 8/2027,
M4 Ende KW 13/2027 (Anfang April). M4 Ende KW 13/2027 (Anfang April).
## Zulieferungen von ITM und BauIn (Soll-Termine) ## Zulieferungen von ITM und BauIn (Soll-Termine)
| Bis | Von | Was | Gebraucht für | | Bis | Von | Was | Gebraucht für |
|---|---|---|---| |---|---|---|---|
| KW 41 | ITM | API-Dokumentation der KI-API (OCR, Embedding, Reranker, ggf. Sprachmodell) | AP3 | | ✓ 02.10. | ITM | API-Dokumentation (API-Werk: Dokumentdienst, `chat`, `chat-noreasoning`, `embed`, `rerank`) | AP3 |
| KW 41 | BauIn, ITM | Antworten auf die ★-Fragen, Termin | Detailplan | | KW 41 | ITM | API-Schlüssel für die Entwicklung; Antworten auf die ITM-Fragen; Preise der API für den Kostenrahmen | AP3, Kostenrahmen |
| KW 42 | BauIn | Beispieldateien (GAEB, MKA als PDF + GAEB, Matrix-Vorlage), Kopie der relevanten Lauffenburg-Dateien | AP5, AP9 | | KW 41 | BauIn | Antworten auf die ★-Fragen | Detailplan |
| KW 43 | ITM | Testzugang zur KI-API (OCR, Embedding, Reranker; Sprachmodell falls vorhanden) | AP3 | | 16.10. | BauIn | Matrix-Vorlage (leer + 2–3 ausgefüllt), Word-Vorlage Stellungnahme, anonymisierter Beispielablauf (LVs als X86 + PDF, Nachträge mit Nachtrags-LV und Anschreiben) | AP5, AP9, OP1, OP2 |
| KW 43 | BauIn | Entscheidung Rollenmodell, Freigabe-Variante, 2FA-Pflicht | AP1, AP8 | | KW 43 | BauIn | Entscheidung Rollenmodell, Freigabe-Variante, Anmeldung (2FA oder Microsoft-Konto) | AP1, AP8 |
| KW 43 | BauIn, ITM | Freigabe Datenschutz für echte Pilotdaten auf den Servern von ITM und über die KI-API | AP11, M2 |
| KW 46 | ITM | Staging-Server mit Zugang, Domain und Zertifikat | AP11, M2 | | KW 46 | ITM | Staging-Server mit Zugang, Domain und Zertifikat | AP11, M2 |
| KW 47 | BauIn | 10–20 abgeschlossene MKAs mit Bewertung (Referenzfälle) | AP2 Teil 2, AP12 | | KW 46 | BauIn | Pilotdaten: alle LVs eines PFA als X86 + PDF (nur auf Staging) | M2 |
| KW 48 | BauIn | Kuratierte Wissensbasis (VOB, DB-Richtlinien, Standardleistungstexte, Vorlagen) | AP4, AP7 | | KW 47 | BauIn | 10–20 abgeschlossene Nachträge mit Ergebnis (Referenzfälle) | AP2 Teil 2, AP12 |
| KW 51 | ITM | Produktions-Server mit Zugang, Domain und Zertifikat | AP11 | | KW 51 | ITM | Produktions-Server mit Zugang, Domain und Zertifikat | AP11 |
| KW 51 | offen | Backups: Speicherort, Aufbewahrungsdauer, Zuständigkeit | AP11 | | KW 51 | offen | Backups: Speicherort, Aufbewahrungsdauer, Zuständigkeit | AP11 |
@@ -104,12 +158,14 @@ M4 Ende KW 13/2027 (Anfang April).
| Risiko | Auswirkung | Gegenmaßnahme | | Risiko | Auswirkung | Gegenmaßnahme |
|---|---|---| |---|---|---|
| Zulieferungen kommen spät | Pakete verschieben sich | Soll-Termine früh vereinbaren; vorziehen, was unabhängig ist | | Zulieferungen kommen spät | Pakete verschieben sich | Soll-Termine am 16.10. vereinbaren; vorziehen, was unabhängig ist |
| ITM bietet kein Sprachmodell an | AP7 entfällt vorerst | Stufe 1 (Suche + Reranker) ist allein schon nützlich; Zeit in AP8/AP10 umschichten | | Kein anonymisierter Beispielablauf, Datenschutz für echte Daten ungeklärt | Kein realistischer Test vor M2 | Öffentliche GAEB-Beispiele; früh anfragen; echte Daten nur auf Staging |
| GAEB 90 (D86) statt XML | GAEB-Import aufwendiger | Beispieldatei früh anfordern; fertige Bibliothek prüfen | | X86-Dateien weichen vom Standard ab (Version, Erweiterungen des Kalkulationsprogramms) | GAEB-Import aufwendiger | Beispieldatei früh anfordern; fertige Bibliothek prüfen; D86 als Rückfall |
| Sprachmodell liefert keine verlässliche strukturierte Antwort | Stufe 2 schwächer | Antwort im Code prüfen; Stufe 1 (Suche + Reranker) ist allein schon nützlich |
| Meilisearch mit 4.096 Dimensionen zu langsam | Suche muss umgebaut werden | Test in KW 41; Plan B Qdrant | | Meilisearch mit 4.096 Dimensionen zu langsam | Suche muss umgebaut werden | Test in KW 41; Plan B Qdrant |
| KI-API ITM ausgelastet | Lange Wartezeiten | Alles asynchron; Priorität für Suchanfragen bei ITM erfragen; Cache | | KI-API ausgelastet (120 Anfragen/min je Schlüssel, für alle Nutzer gemeinsam) | Lange Wartezeiten bei Erstindexierung und Suche | Alles asynchron; Stapel-Embeddings; Suchanfragen bevorzugen; ggf. getrennte Schlüssel |
| Fachexperte wenig verfügbar | Kein Feedback, keine Messung | Feste Jour-fixe-Termine; Referenzfälle früh anfordern | | Excel-Vorlage der DB enthält Makros | Export kann Makros verlieren (OP1) | Vorlage früh testen; notfalls Werte zum Einfügen exportieren |
| Fachexperte wenig verfügbar | Kein Feedback, keine Messung | Feste Freitagstermine; Referenzfälle früh anfordern |
## Aufgabenliste (nächste zwei Wochen) ## Aufgabenliste (nächste zwei Wochen)
@@ -118,39 +174,51 @@ M4 Ende KW 13/2027 (Anfang April).
- [x] Laravel 13, Livewire 4, TallStackUI 4, Fortify (2FA, Passkeys), Spatie - [x] Laravel 13, Livewire 4, TallStackUI 4, Fortify (2FA, Passkeys), Spatie
- [x] Mehrsprachigkeit (Deutsch Standard, Englisch) - [x] Mehrsprachigkeit (Deutsch Standard, Englisch)
- [x] CLAUDE.md, Tech-Stack-Doku, Projektplan - [x] CLAUDE.md, Tech-Stack-Doku, Projektplan
- [x] Besprechung mit BauIn (02.10.), API-Dokumentation von ITM erhalten
**KW 41** **KW 41**
- [ ] Fragenliste an den Kunden schicken, Termin für KW 42 vereinbaren (inkl. Lauffenburg-Walkthrough) - [ ] Fragenkatalog an BauIn (fachlich, IT) und ITM schicken
- [ ] API-Dokumentation bei ITM, Beispieldateien bei BauIn anfordern - [ ] Übergabe an Claude Design: Prototyp an den neuen Umfang anpassen
- [ ] Claude Design: Durchgang 1 (Designsystem, Layout, Prüfmaske, Regeldialog) - [ ] API-Schlüssel für die Entwicklung bei ITM anfordern; Schnelltest (Modellverzeichnis,
Dimension von `embed`, `rerank`, `chat` mit Streaming)
- [ ] **Meilisearch-Test Teil 1** (erzeugte 4.096-dim. Vektoren, z. B. 50.000 Stück): - [ ] **Meilisearch-Test Teil 1** (erzeugte 4.096-dim. Vektoren, z. B. 50.000 Stück):
Indexierungszeit, Antwortzeit mit Filtern, RAM und Platte; jeweils ohne und mit binärer Quantisierung Indexierungszeit, Antwortzeit mit Filtern, RAM und Platte; jeweils ohne und mit binärer Quantisierung
- [ ] Datenmodell Kern: Mandant, Land, Projekt, Los, Dokument (Kategorie, Vertraulichkeit), Mitgliedschaften - [ ] Datenmodell Kern: Mandant, Land, Projekt, PFA, Vertrag, LV, Dokument (Kategorie,
Vertraulichkeit), Nachtrag, Nachtragsposition, Mitgliedschaften
- [ ] GAEB-X86-Test mit öffentlichen Beispieldateien, Bibliothek auswählen
- [ ] CI in Gitea Actions: Tests, Pint, PHPStan - [ ] CI in Gitea Actions: Tests, Pint, PHPStan
- [ ] Commits nach Gitea pushen - [ ] Commits nach Gitea pushen
**KW 42** **KW 42**
- [ ] Kundentermin durchführen, Antworten in Plan und Doku übernehmen - [ ] Aufwand für den Kostenrahmen an ITM (bis 14.10.)
- [ ] Statusbericht mit Screenshots für den 16.10.
- [ ] **Termin BauIn 16.10.:** Antworten in Plan und Doku übernehmen, Soll-Termine vereinbaren
- [ ] Rollen und Rechte (Spatie, ggf. Teams je Projekt), Benutzerverwaltung im Admin-Bereich - [ ] Rollen und Rechte (Spatie, ggf. Teams je Projekt), Benutzerverwaltung im Admin-Bereich
- [ ] Upload, privater Speicher, Download mit Rechteprüfung - [ ] Upload, privater Speicher, Download mit Rechteprüfung, Massen-Upload
- [ ] Design-Feedback an Claude Design, Durchgang 2 - [ ] Design-Feedback an Claude Design
**Später im Plan (bereits vorgemerkt)** **Später im Plan (bereits vorgemerkt)**
- [ ] Detailplan mit Teilplänen je Arbeitspaket (KW 43)
- [ ] **Meilisearch-Test Teil 2** (KW 46–47): Trefferquote mit echten API-Vektoren und Referenzfällen, - [ ] **Meilisearch-Test Teil 2** (KW 46–47): Trefferquote mit echten API-Vektoren und Referenzfällen,
ohne/mit binärer Quantisierung, vor und nach dem Reranker ohne/mit binärer Quantisierung, vor und nach dem Reranker
- [ ] Push-Mirror zum Gitea von ITM einrichten, sobald die Adresse vorliegt - [ ] Push-Mirror zum Gitea von ITM einrichten, sobald die Adresse vorliegt
- [ ] 2FA-Pflicht umsetzen, falls der Kunde das entscheidet - [ ] 2FA-Pflicht oder Microsoft-Anmeldung umsetzen, je nach Entscheidung des Kunden
## Später (nicht im MVP) ## Ausbaustufen nach Phase 1
- Prüfung der Höhe nach, inkl. Mengen- und Preisvergleich (D11) - **Phase 2 – Prüfung der Höhe nach:** Preis der Nachtragsposition gegen Bezugsposition und
- Dokumentenmanagement, E-Mail-/Exchange-Anbindung gleiche Leistung in anderen PFAs, Auszüge aus der Urkalkulation, Nachtragskalkulation. Die
- Österreich (ÖNORM B 2110/B 2118, ÖNORM A 2063) vollständige Urkalkulation liegt versiegelt bei der DB; dort prüft der Einkauf die Höhe.
- Bauzeitenplan-Analyse - **Phase 3 – Regelwerk:** Richtlinien der DB (Auszug, mit dem BauIn zu rund 80 % arbeitet:
- Weitere Sprachen 263 PDF-Dateien, 743 MB, z. B. Ril 821, 824, 836) in die Suche aufnehmen, dazu ein interner
Chat, der mit PDF, Seite und Stelle zitiert. Phase 1 legt die Grundlagen: Dokumentspeicher,
Abschnitte mit Seitenbezug, Quellenanzeige im PDF.
- **Weitere Ideen:** Dokumentenmanagement, E-Mail-Anbindung, Anbindung an das
Dokumentensystem der DB, Österreich (ÖNORM B 2110/B 2118, ÖNORM A 2063),
Bauzeitenplan-Analyse, weitere Sprachen.
## Nebenprojekt außerhalb des Budgets ## Nebenprojekt außerhalb des Budgets
- **datenschleuse** (lokaler Scanner/Bereiniger, Prompt in `Prompt_Datenschleuse.md`): - **datenschleuse** (lokaler Scanner/Bereiniger, Prompt in `Prompt_Datenschleuse.md`):
mindestens Phase 1–2 fertig, bevor echte Kundendateien mit Claude bearbeitet werden. Bis dahin mindestens Phase 1–2 fertig, bevor echte Kundendateien mit Claude bearbeitet werden. Bis dahin
gehen echte Kundendateien nicht an Claude. gehen echte Kundendateien nicht an Claude. Hilft auch beim anonymisierten Beispielablauf.
+18 -10
View File
@@ -1,16 +1,16 @@
# KI-BauIN – Tech-Stack # KI-BauIN – Tech-Stack
Stand: 1. Oktober 2026. Grundlage ist die allgemeine Tech-Stack-Referenz einer bestehenden Stand: 2. Oktober 2026. Grundlage ist die allgemeine Tech-Stack-Referenz einer bestehenden
Laravel-Verwaltungsanwendung (Kollegenprojekt). Dieses Dokument übernimmt deren Grundsätze Laravel-Verwaltungsanwendung (Kollegenprojekt). Dieses Dokument übernimmt deren Grundsätze
und benennt, wo KI-BauIN bewusst abweicht und warum. und benennt, wo KI-BauIN bewusst abweicht und warum.
## Beteiligte ## Beteiligte
- **ITM:** Anbieter der KI-API (OCR, Embeddings, Reranker, ggf. Sprachmodell), Projektleitung und - **ITM:** Anbieter der KI-API (über API-Werk: Dokumentdienst mit OCR, Embeddings, Reranker,
abrechnende Firma. Stellt auch die Server (Staging, Produktion) und den Gitea, auf den das Sprachmodell), Projektleitung und abrechnende Firma. Stellt auch die Server (Staging, Produktion) und den Gitea, auf den das
Repository gespiegelt wird. Repository gespiegelt wird.
- **BauIn:** Endkunde. Liefert Fachdaten (LVs, MKAs, Bewertungsmatrizen), stellt den Fachexperten - **BauIn:** Endkunde. Prüft als Bauüberwachung im Auftrag der DB Nachträge dem Grunde nach.
und nutzt das System. Liefert Fachdaten (LVs, Nachträge, Bewertungsmatrizen), stellt den Fachexperten und nutzt das System.
- „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM. - „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM.
## 1. Backend und Oberfläche ## 1. Backend und Oberfläche
@@ -27,7 +27,10 @@ und benennt, wo KI-BauIN bewusst abweicht und warum.
| Mehrsprachigkeit | Deutsch (Standard) und Englisch, Sprache je Benutzer; Übersetzungen über Laravel Lang (nur Entwicklung), eigene Texte in `lang/project/` | ergänzt | | Mehrsprachigkeit | Deutsch (Standard) und Englisch, Sprache je Benutzer; Übersetzungen über Laravel Lang (nur Entwicklung), eigene Texte in `lang/project/` | ergänzt |
| Vite 8, Node.js/npm | Asset-Build | gleich | | Vite 8, Node.js/npm | Asset-Build | gleich |
| Composer | Abhängigkeiten mit Lockfile | gleich | | Composer | Abhängigkeiten mit Lockfile | gleich |
| PhpSpreadsheet | Excel-Export der Bewertungsmatrix | geplant, sobald die Vorlage vorliegt | | GAEB-Import | LVs und Nachtrags-LVs aus GAEB DA XML (X86); D86 nur als Rückfall | ergänzt |
| pdf.js (lokal ausgeliefert, kein CDN) | Anzeige der LV- und Nachtrags-PDFs mit Sprung zur Fundstelle | ergänzt |
| PhpSpreadsheet | Ergebnisliste als Excel; Option: Bewertungsmatrix in der Vorlage der DB | geplant |
| PHPWord | Option: Stellungnahme aus Word-Vorlage (nur .docx) | Option |
| Dompdf | PDF-Erzeugung | vorerst nicht nötig | | Dompdf | PDF-Erzeugung | vorerst nicht nötig |
Aufbau als modularer Laravel-Monolith: Livewire-Komponenten für die Interaktion, Services für Aufbau als modularer Laravel-Monolith: Livewire-Komponenten für die Interaktion, Services für
@@ -44,8 +47,8 @@ Länderspezifisches (DE/AT) hinter Schnittstellen im Kern, Umsetzungen in `app/L
| Datenbank-Warteschlange | Dokumentverarbeitung, Embeddings, KI-Aufrufe | gleich | | Datenbank-Warteschlange | Dokumentverarbeitung, Embeddings, KI-Aufrufe | gleich |
| Laravel Scheduler | Wiederanlauf hängender Aufträge, Aufräumarbeiten | gleich | | Laravel Scheduler | Wiederanlauf hängender Aufträge, Aufräumarbeiten | gleich |
| Meilisearch | Hybride Suche (Volltext + Vektoren) mit Rechte-Filtern; Index jederzeit aus MySQL neu aufbaubar | ergänzt | | Meilisearch | Hybride Suche (Volltext + Vektoren) mit Rechte-Filtern; Index jederzeit aus MySQL neu aufbaubar | ergänzt |
| KI-API ITM | OCR, Embeddings (Qwen3-Embedding-8B), Reranker, ggf. Sprachmodell | ergänzt; Anbindung folgt | | KI-API ITM (API-Werk, `https://api-werk.de`) | Dokumentdienst (OCR-Gateway/OpenDataLoader: PDF → Markdown/JSON, asynchron mit Abfrage des Ergebnisses), Modelle `embed`, `rerank`, `chat`, `chat-noreasoning` (OpenAI-kompatibel). Drei Schlüssel, nur im Backend; 120 Anfragen/min je Schlüssel; 50 MB je Datei; keine Idempotenz | ergänzt; Anbindung folgt |
| Persistenter Ereigniseingang mit HMAC-Prüfung | Falls die KI-API Ergebnisse per Webhook meldet | geplant, abhängig von der API | | Persistenter Ereigniseingang mit HMAC-Prüfung | – | nicht nötig: API-Werk meldet nicht per Webhook, Ergebnisse werden abgefragt |
| Nachrichten-Outbox | – | vorerst nicht nötig; Benachrichtigungen über die Warteschlange | | Nachrichten-Outbox | – | vorerst nicht nötig; Benachrichtigungen über die Warteschlange |
Redis wird nicht eingesetzt: Warteschlange, Cache und Sessions laufen über die Datenbank. Redis wird nicht eingesetzt: Warteschlange, Cache und Sessions laufen über die Datenbank.
@@ -67,7 +70,9 @@ Redis wird nicht eingesetzt: Warteschlange, Cache und Sessions laufen über die
| Keine externen Ressourcen | Test prüft alle Seiten auf fremde Hosts | ergänzt (Vorgabe „alles lokal“) | | Keine externen Ressourcen | Test prüft alle Seiten auf fremde Hosts | ergänzt (Vorgabe „alles lokal“) |
Rechte werden an den Zugriffswegen und an den auslösenden Aktionen geprüft, zusätzlich bei Rechte werden an den Zugriffswegen und an den auslösenden Aktionen geprüft, zusätzlich bei
Suchtreffern und bevor Inhalte an ein Sprachmodell gehen. Suchtreffern (vor dem Reranking) und bevor Inhalte an ein Sprachmodell gehen. Dokumentinhalte
sind für das Sprachmodell Daten, keine Anweisungen. Keine Authorization-Köpfe, ganzen Dokumente
oder Prompts in technischen Logs.
## 4. Entwicklung und Qualität ## 4. Entwicklung und Qualität
@@ -113,6 +118,9 @@ Ergänzt bzw. anders als in der Referenz:
- Verlangen BauIn oder ITM eine Festplattenverschlüsselung auf den Servern bei ITM? - Verlangen BauIn oder ITM eine Festplattenverschlüsselung auf den Servern bei ITM?
- Backups: Speicherort, Aufbewahrungsdauer und wer dafür zuständig ist. - Backups: Speicherort, Aufbewahrungsdauer und wer dafür zuständig ist.
- Weitere Sprachen über Deutsch und Englisch hinaus (technisch vorbereitet, fachlich nicht angefragt). - Weitere Sprachen über Deutsch und Englisch hinaus (technisch vorbereitet, fachlich nicht angefragt).
- Datenschutz der KI-API: Standort von API-Werk und KI-Server, Auftragsverarbeitung, Aufbewahrung
hochgeladener Dokumente und Ergebnisse.
- Anmeldung mit eigenem Passwort und 2FA oder mit dem Microsoft-Konto von BauIn.
## Architekturübersicht ## Architekturübersicht
@@ -126,7 +134,7 @@ flowchart LR
App --> Search[(Meilisearch)] App --> Search[(Meilisearch)]
App --> Queue[Datenbank-Warteschlange] App --> Queue[Datenbank-Warteschlange]
Queue --> Worker[Worker unter systemd] Queue --> Worker[Worker unter systemd]
Worker --> KI[KI-API ITM: OCR, Embeddings, Reranker] Worker --> KI[KI-API ITM über API-Werk: OCR, Embeddings, Reranker, Sprachmodell]
Worker --> DB Worker --> DB
Worker --> Search Worker --> Search
Cron[Cron] --> Scheduler[Laravel Scheduler] Cron[Cron] --> Scheduler[Laravel Scheduler]