clusev/kickoff-prompt.md

2.9 KiB
Raw 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.