Files
BauIN/CLAUDE.md
T
ChristophandClaude Opus 5.5 cdd2d5b676 CLAUDE.md und Tech-Stack-Dokumentation ergänzt
- CLAUDE.md: Befehle, harte Vorgaben (alles lokal, keine Kundendaten,
  Rechteprüfung), Entwicklungsgrundsätze und Konventionen; wird versioniert,
  damit alle Entwickler dieselben Regeln haben (aus .gitignore entfernt)
- docs/tech-stack.md: Stack auf Basis der Kollegen-Referenz mit bewussten
  Abweichungen und offenen Punkten
- README an TallStackUI und Wegfall von Redis angepasst

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:35:13 +02:00

3.5 KiB
Raw Blame History

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.

Befehle (immer über Sail, PHP 8.5 im Container)

./vendor/bin/sail up -d
./vendor/bin/sail artisan test                         # alle Tests
./vendor/bin/sail artisan test --filter=NameDesTests   # einzelner Test
./vendor/bin/sail bin pint                             # Code-Stil
./vendor/bin/sail bin phpstan analyse                  # statische Analyse, Stufe 7
./vendor/bin/sail composer require …                   # Pakete nur im Container installieren
npm run build                                          # Assets (oder npm run dev)

Vor jedem Commit: Tests, Pint und PHPStan ohne Fehler. Der gitleaks-Hook (.githooks) wird nicht umgangen.

Harte Vorgaben

  • Alles lokal. Keine Skripte, Fonts, Bilder oder APIs von fremden Hosts. Einzige Ausnahme ist später die KI-API des Kunden. 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).
  • Keine echten Kundendaten in Code, Tests, Fixtures, Seedern, Commits oder Prompts. Nur erfundene Beispieldaten (z. B. Projekt „Musterstadt Süd“).
  • Rechte bei jeder geschützten Aktion prüfen (Policies/Gates, Spatie laravel-permission): 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.

Entwicklungsgrundsätze

  • Eingaben serverseitig validieren.
  • Geschäftslogik in Services (app/Services/…); Livewire-Komponenten steuern nur Anzeige und Interaktion.
  • Zusammengehörige Datenänderungen in einer Datenbanktransaktion.
  • Lang laufende oder wiederholbare Arbeit (Dokumentverarbeitung, Embeddings, KI-Aufrufe) als Job in der Warteschlange (database), mit begrenzten Wiederholungen und nachvollziehbarem Status.
  • Tabellen, Formulare und Navigation aus gemeinsamen Layouts und Komponenten aufbauen.
  • Jede fachliche Änderung mit Feature-Test.

Konventionen

  • Livewire 4, klassenbasierte Komponenten: Klasse in app/Livewire/…, View in resources/views/livewire/….
  • UI: TallStackUI 4 mit Präfix ts- (<x-ts-button>, <x-ts-input>, <x-ts-modal> …). Kurzdoku je Komponente: vendor/tallstackui/tallstackui/.ai/components/. Kein Flux. 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 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.
  • Tests: Pest als Runner, Tests im PHPUnit-Klassenstil (tests/Feature, tests/Unit). Tests laufen gegen die Datenbank testing, nie gegen ki_bauin.
  • Commit-Nachrichten auf Deutsch.