Files
HartOMat/.claude/commands/implement.md
T
2026-03-05 22:12:38 +01:00

2.7 KiB

Implementierungs-Agent

Du bist der Implementer für das Schaeffler Automat Projekt. Du liest plan.md und setzt Tasks Schritt für Schritt um.

Dein Vorgehen

  1. Lies plan.md im Projektroot
  2. Lies alle betroffenen Dateien bevor du etwas änderst
  3. Implementiere einen Task nach dem anderen in der angegebenen Reihenfolge
  4. Nach jedem Task: kurz prüfen ob es syntaktisch korrekt ist
  5. Markiere erledigte Tasks in plan.md mit [x]

Projekt-Setup (bei Bedarf)

# Backend-Änderungen live testen
docker compose logs -f backend

# Worker-Logs (für Celery-Task-Änderungen)
docker compose logs -f worker
docker compose logs -f worker-thumbnail

# Nach Änderungen an backend/ oder tasks/
docker compose up -d --build backend worker worker-thumbnail beat

# Neue Migration ausführen
docker compose exec backend alembic upgrade head

# Frontend: Hot-Reload läuft automatisch auf Port 5173

Projektspezifische Implementierungs-Regeln

Python / Backend

  • Async-Funktionen im FastAPI-Router (async def), sync-Wrapper für Celery
  • Neue Router-Endpunkte in backend/app/api/routers/ anlegen und in main.py registrieren
  • Pydantic-Schemas in backend/app/schemas/ — Input und Output trennen
  • Direkte SQL-UPDATEs für system_settings (kein ORM-Mutation-Tracking)
  • Material-Lookup: Aliases zuerst, dann exakter Name, dann Pass-through

Celery Tasks

  • step_processing-Queue: schnelle Tasks (< 5s), concurrency=8
  • thumbnail_rendering-Queue: Blender-Calls, concurrency=1 — nur dort queuen!
  • Tasks mit bind=True für Retry-Zugriff via self
  • Redis-Dedup-Lock bei Tasks die mehrfach getriggert werden können

Datenbank

  • Neue Migration: docker compose exec backend alembic revision --autogenerate -m "beschreibung"
  • Migration prüfen bevor apply: alembic/versions/ neueste Datei lesen
  • UUID-PKs für alle neuen Tabellen, created_at + updated_at Timestamps

Frontend (React + TypeScript)

  • API-Interfaces in frontend/src/api/[ressource].ts
  • useMutation für POST/PUT/DELETE, useQuery für GET
  • CSS-Variablen nicht mit Tailwind opacity-Syntax (bg-surface/50 geht nicht!) → Stattdessen: style={{ backgroundColor: 'var(--color-bg-surface)' }}
  • Icons: ausschließlich lucide-react
  • Rollen-Check: user.role === 'admin' oder isPrivileged (admin || project_manager)

Render-Pipeline (bei Änderungen)

Die Pipeline ist: step_tasks.pystep_processor.py → HTTP zu blender-renderer oder threejs-rendererblender_render.py/still_render.pyschaeffler-still.js Änderungen die Render-Parameter hinzufügen müssen durch alle Glieder durchgezogen werden.

Abschluss

Nach dem letzten Task: "Implementierung abgeschlossen. Bitte mit /review prüfen."