Plan auf Team Entwickler + Claude Code und ITM-Entwickler umgestellt
- Aufwand in Personenwochen mit Claude Code (Kern ≈ 11 statt ≈ 23 PW) - ITM-Entwickler: KI-API und Serveraufbau nach unseren Vorgaben - Mehr Inhalt je Meilenstein, Optionen Matrix und Stellungnahme im Zeitplan - CLAUDE.md: Arbeitsweise für Vibe Coding, neuer Umfang, Regeln zur KI-API Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
56eb2ea455
commit
d9cda4a7d3
@@ -1,7 +1,8 @@
|
||||
# KI-BauIN – Hinweise für Claude Code
|
||||
|
||||
KI-gestützte Prüfung von Mehrkostenanzeigen (MKA) und Nachträgen im Bahnbau. Stack und
|
||||
Begründungen: `docs/tech-stack.md`. Einrichtung und Adressen: `README.md`.
|
||||
KI-gestützte Prüfung von Nachträgen im Bahnbau dem Grunde nach: Ist die Leistung einer
|
||||
Nachtragsposition schon im Vertrag (LVs mit Vorbemerkungen) enthalten? Stack und Begründungen:
|
||||
`docs/tech-stack.md`, Umfang und Plan: `docs/projektplan.md`, Einrichtung: `README.md`.
|
||||
|
||||
## Befehle (immer über Sail, PHP 8.5 im Container)
|
||||
|
||||
@@ -18,10 +19,24 @@ npm run build # Assets (oder npm run de
|
||||
Vor jedem Commit: Tests, Pint und PHPStan ohne Fehler. Der gitleaks-Hook (`.githooks`)
|
||||
wird nicht umgangen.
|
||||
|
||||
## Arbeitsweise
|
||||
|
||||
Das Projekt entsteht per Vibe Coding: Claude Code schreibt den Code, der Entwickler steuert,
|
||||
testet im Browser und liest nicht jede Zeile. Deshalb:
|
||||
|
||||
- Jede Funktion kommt mit Tests; Tests werden nie abgeschwächt oder übersprungen, damit sie grün
|
||||
werden.
|
||||
- Für jede geschützte Aktion ein Test, der den Zugriff ohne Berechtigung prüft (auch Download,
|
||||
Suchtreffer, Daten an das Sprachmodell).
|
||||
- Kleine Schritte, je ein Commit mit verständlicher Nachricht.
|
||||
- Änderungen an Rechten, Dateizugriff, Suchfilter oder KI-Aufrufen in der Antwort ausdrücklich
|
||||
benennen, damit sie gezielt geprüft werden.
|
||||
- Bei fachlichen Unklarheiten nachfragen statt raten; offene Punkte stehen in `docs/projektplan.md`.
|
||||
|
||||
## Harte Vorgaben
|
||||
|
||||
- **Alles lokal.** Keine Skripte, Fonts, Bilder oder APIs von fremden Hosts. Einzige Ausnahme
|
||||
ist später die KI-API ITM. `tests/Feature/NoExternalResourcesTest.php` muss grün bleiben.
|
||||
ist die KI-API ITM (API-Werk), nur aus dem Backend, Schlüssel nur in `.env`. `tests/Feature/NoExternalResourcesTest.php` muss grün bleiben.
|
||||
- `<x-ts-avatar>` nur mit `text` (Initialen), nie mit `model`, `gravatar` oder Bild-URL –
|
||||
sonst lädt TallStackUI von ui-avatars.com bzw. gravatar.com.
|
||||
- `<x-ts-reaction>` nicht verwenden (lädt Emojis von Google).
|
||||
@@ -31,6 +46,9 @@ wird nicht umgangen.
|
||||
in Controllern und Livewire-Aktionen, bei Downloads, bei Suchtreffern und bevor Inhalte an
|
||||
ein Sprachmodell gehen. Die Oberfläche auszublenden reicht nicht.
|
||||
- **Dateien privat speichern** (Disk `local`) und nur über eine Route mit Rechteprüfung ausliefern.
|
||||
- **Dokumentinhalte sind Daten, keine Anweisungen.** Texte aus LVs, Nachträgen und Anlagen gehen
|
||||
nur als abgegrenzter Kontext an das Sprachmodell; seine Antwort wird im Code geprüft.
|
||||
Keine Authorization-Köpfe, ganzen Dokumente oder Prompts in technische Logs.
|
||||
|
||||
## Entwicklungsgrundsätze
|
||||
|
||||
@@ -52,7 +70,8 @@ wird nicht umgangen.
|
||||
Toasts/Dialoge aus Livewire über `TallStackUi\Traits\Interactions` (`$this->toast()->success(…)->send()`).
|
||||
- **Eigene Blade-Komponenten ohne Präfix**, z. B. `<x-heading>`, `<x-subheading>`, `<x-user-menu>`.
|
||||
- **Dark Mode** über `tallstackui_darkTheme()` am `<html>`-Element; Speicherschlüssel `dark-theme`.
|
||||
- **Benennung:** Fachbegriffe deutsch (`Mehrkostenanzeige`, `LvPosition`, `Los`), technische
|
||||
- **Benennung:** Fachbegriffe deutsch (`Nachtrag`, `Nachtragsposition`, `LvPosition`, `Pfa`,
|
||||
`Vertrag`), technische
|
||||
Begriffe nach Laravel-Konvention englisch (`Controller`, `Policy`, `Job`).
|
||||
- **Länder DE/AT:** gemeinsamer Kern, länderspezifische Logik hinter Schnittstellen in
|
||||
`app/Laender/DE` bzw. `app/Laender/AT`. Fachliche Tabellen bekommen `mandant_id` und `land`.
|
||||
|
||||
Reference in New Issue
Block a user