clusev/kickoff-prompt.md

2.9 KiB
Raw Permalink Blame History

Lies zuerst handoff.md in diesem Verzeichnis KOMPLETT (oben bis unten). Das ist die verbindliche Quelle für Produkt, Stack, Regeln, Ordnerstruktur und Deployment des Projekts Clusev (self-hosted Multi-Server-Control-Panel, agentless über SSH).

Kontext dieser Maschine: Debian 13, 10.10.90.136, nur Docker + ein sudo-User installiert — sonst nichts (kein PHP/Node/Composer auf dem Host). Alles läuft in Containern. Deployment = plain Docker Compose, kein Portainer.

Arbeite in dieser Reihenfolge und stoppe an den markierten Freigabe-Punkten:

  1. handoff.md lesen. Bestätige mir in 58 Stichpunkten, dass du Produkt, Stack und die STRICT RULES (R1R10, §4) verstanden hast. Wenn die Mockup-Referenz ../bastion existiert, sieh sie dir an (Pixel-Vorlage + Tokens).

  2. Offene Punkte (§12) abfragen, BEVOR du baust: finaler Name (Clusev?), DB (MariaDB?), GHCR-Namespace, ob ../bastion vorhanden ist. Bei Unklarheit fragen — nicht raten.

  3. rules.md erzeugen — die STRICT RULES R1R10 aus §4, jede mit kurzer Begründung + korrekt / verboten Code-Beispiel (v.a. R1R5: full-page Livewire-Routen, class statt Volt, Tokens in @theme, keine Inline-Styles außer Progressbar-width, Löschen nur per Modal).

  4. CLAUDE.md erzeugen — Produkt (§1), Stack (§3), Ordnermap (§5), Commands (§9), Konventionen (UI Deutsch/kein Emoji, Tokens, responsive Mobile+Tablet+Desktop) + eine "Before-you-code"-Checkliste, die auf rules.md verweist.

    FREIGABE-PUNKT: Zeig mir rules.md + CLAUDE.md. Erst nach meinem OK weiter.

  5. Scaffold (Docker-first, §8/§9). Host hat nur Docker → alles im Container bootstrappen:

    • Dockerfile (php8.3-fpm + composer + node), docker-compose.yml (dev: app, vite, reverb, queue, mariadb, redis — build:, bind-mount, Vite remote-HMR host=0.0.0.0, hmr.host=10.10.90.136), docker-compose.prod.yml, .dockerignore.
    • Laravel 12 + Livewire 3 (class, kein Volt) + Tailwind 4 + Vite.
    • composer require livewire/livewire wire-elements/modal phpseclib/phpseclib laravel/reverb.
    • resources/css/app.css mit @theme-Tokens aus §6 (aus bastion.css).
    • Saubere Ordnerstruktur exakt nach §5.

    FREIGABE-PUNKT: App startet im Container, leere Seite rendert, Vite-HMR läuft. Zeig mir das.

  6. v1 starten (§1 Scope). Layout + Blade-Components (Sidebar, Topbar, Panel, Kpi, StatusPill, StatusDot, Badge, Icon[Lucide], Ring), Dashboard als full-page Livewire-Route mit Live-Metriken über Reverb. Mock-Daten zuerst, SSH-Layer (phpseclib) danach. Alles responsive.

Halte dich strikt an rules.md. Konflikt zwischen meiner Anweisung und den Regeln → nachfragen. Verifiziere jeden Schritt (Container baut, Seite rendert, keine Console-Errors) bevor du "fertig" sagst. Arbeite auf einem Branch, nicht auf main; committe in sinnvollen Schritten.