# Vollversammlung – Agent Instructions ## Project Mandantenfähiges Veranstaltungs-Tool mit Anwesenheitsverwaltung und Statistik. - Backend: Symfony (manuelle Controller, keine API Platform) - Frontend: React - DB: PostgreSQL (Multi-Tenant, Scoping per MandantID) - Auth: externer OAuth (Vonova), kein lokaler Login - Logging: Mercure - Infrastruktur: Docker / docker-compose ## Structure (planned) ``` vollversammlung/ ├── .opencode/ ← OpenCode agents + config (opencode.json) ├── Doku/ ← Planungsdokumente, Architektur ├── api/ ← Symfony Backend └── frontend/ ← React Frontend ``` ## Key constraints the repo doesn't make obvious - Personen haben **keine** email/benutzername-Felder – OAuth liefert Identität extern - Mandantenisolation ist core: alle Daten pro MandantID scoped, keine Überschneidung - Auth-Tokens niemals im Client-Speicher (localStorage/sessionStorage) - Session-Cookies: HttpOnly, Secure, SameSite=lax - Input-Validierung auf jeder Schicht: Frontend + API + DB-Level ## Agent config Agents are defined in `.opencode/opencode.json` and `.opencode/agents/*.md`. They cover six roles: architekt, db-architekt, backend-coder, frontend-coder, tester, devops-coder. Loading agent instructions from `.opencode/` is the primary configuration surface – no other OpenCode config files exist at root level. ## Referenzen - `Doku/architektur.md` → Backend Architektur mit struktur & Konventionen (Provider/Processor-Pattern, Multi-Tenant Scoping) - `Doku/plan.md` → Domain-Details und Entity-Spezifikationen (Veranstaltung, Personen, Anwesenheit) - `Doku/agents_planung.md` → 4-Phasen-Agent-Arbeitsverteilung - `Doku/umsetzung.md` → Aktueller Projektfortschritt (immer aktuell halten!) ## Arbeitsweise - Immer einen Subagent starten für parallele Arbeit (z.B. Backend + Frontend gleichzeitig) - Fortschritt unter `Doku/umsetzung.md` speichern und aktualisieren ## What to do on first session in api/ or frontend/ 1. Read `.opencode/opencode.json` for agent definitions 2. Read `Doku/architektur.md` und `Doku/plan.md` für Architektur und Domain-Anforderungen 3. Read the relevant agent file from `.opencode/agents/` fur implementierung-Konventionen 4. Prüfe ob Infrastruktur eingerichtet ist (docker-compose.yaml, .env.example) vor Code-Schreiben ## Wichtige Pfad-Convention - Alle Pfade mit `Doku/`, `.opencode/`, `api/`, `frontend/` immer relativ zum Workspaceroot - Niemals Annahmen über Pfadnamen treffen – bei Unsicherheit zuerst `ls` oder `glob` verwenden - Im Zweifel immer den aktuellen Pfad über das Terminal prüfen (z. B. `pwd`) bevor Dateioperationen erfolgen