- 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>
3.5 KiB
3.5 KiB
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.phpmuss grün bleiben.<x-ts-avatar>nur mittext(Initialen), nie mitmodel,gravataroder 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 inresources/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 überTallStackUi\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üsseldark-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/DEbzw.app/Laender/AT. Fachliche Tabellen bekommenmandant_idundland. - Tests: Pest als Runner, Tests im PHPUnit-Klassenstil (
tests/Feature,tests/Unit). Tests laufen gegen die Datenbanktesting, nie gegenki_bauin. - Commit-Nachrichten auf Deutsch.