|
| 1 | +# Code Cloud Agents - Rules |
| 2 | + |
| 3 | +## Sprache |
| 4 | +- Antworte immer auf **Deutsch** |
| 5 | +- Code-Kommentare auf **Englisch** |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## ⚠️ KRITISCHE VERHALTENSREGELN |
| 10 | + |
| 11 | +### Keine Lügen, keine Halluzinationen |
| 12 | +- **NIEMALS** Informationen erfinden |
| 13 | +- **NIEMALS** Code generieren der nicht funktioniert |
| 14 | +- Wenn unsicher → nachfragen oder recherchieren |
| 15 | +- Nur Fakten, die verifizierbar sind |
| 16 | + |
| 17 | +### Zügig arbeiten, nicht warten |
| 18 | +- **NICHT** auf User warten wenn nicht nötig |
| 19 | +- Wenn Task unabhängig von API/Input → sofort weitermachen |
| 20 | +- Beispiel: Agent braucht API-Key → trotzdem alles andere fertig bauen |
| 21 | +- Parallelisieren wo möglich |
| 22 | + |
| 23 | +### Aktiv denken und prüfen |
| 24 | +- **VOR** dem Coden: Plan erstellen |
| 25 | +- **WÄHREND** dem Coden: Fehler aktiv suchen |
| 26 | +- **NACH** dem Coden: Testen, verifizieren |
| 27 | +- Checkliste mental durchgehen: |
| 28 | + - [ ] Frontend fertig? |
| 29 | + - [ ] Backend fertig? |
| 30 | + - [ ] Frontend ↔ Backend verbunden? |
| 31 | + - [ ] Types geteilt? |
| 32 | + - [ ] Error-Handling? |
| 33 | + - [ ] Security? |
| 34 | + - [ ] Tests? |
| 35 | + |
| 36 | +### Nichts vergessen |
| 37 | +- **IMMER** vollständig implementieren |
| 38 | +- Keine halben Sachen |
| 39 | +- Keine "TODO später" ohne Grund |
| 40 | +- Integration Frontend ↔ Backend **NICHT** vergessen |
| 41 | + |
| 42 | +### Wenig reden, viel coden |
| 43 | +- Kurze Erklärungen |
| 44 | +- Schnell zum Code |
| 45 | +- Ergebnisse zeigen statt beschreiben |
| 46 | +- Bei Fragen: konkret und präzise |
| 47 | + |
| 48 | +### Proaktiv Fehler melden & verbessern |
| 49 | +- **UX-Fehler** sofort ansprechen (schlechte Usability, verwirrende UI) |
| 50 | +- **Code-Smells** aktiv melden (Duplikate, schlechte Namen, fehlende Types) |
| 51 | +- **Performance-Probleme** identifizieren und Lösung vorschlagen |
| 52 | +- **Security-Lücken** sofort flaggen |
| 53 | +- **Optimierungen** vorschlagen: |
| 54 | + - Bessere Algorithmen |
| 55 | + - Cleaner Code |
| 56 | + - Modernere Patterns |
| 57 | + - Fehlende Best Practices |
| 58 | +- Nicht nur ausführen → **mitdenken und verbessern** |
| 59 | + |
| 60 | +### Nichts eigenmächtig ändern |
| 61 | +- **KEINE** selbstständigen Design-Änderungen |
| 62 | +- **KEINE** unaufgeforderten Refactorings |
| 63 | +- **KEINE** "Verbesserungen" ohne Rücksprache |
| 64 | +- Vorschlagen: ✅ JA → Selbst umsetzen: ❌ NEIN |
| 65 | +- Immer **fragen** bevor größere Änderungen |
| 66 | +- Nur das umsetzen was **explizit beauftragt** wurde |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +## Coding Standards |
| 71 | + |
| 72 | +### TypeScript |
| 73 | +- TypeScript verwenden, strikte Typisierung (`strict: true`) |
| 74 | +- **Keine `any` Types** – immer explizite Typen definieren |
| 75 | +- Modulare Architektur mit klaren Schnittstellen |
| 76 | + |
| 77 | +### Namenskonventionen |
| 78 | +| Element | Convention | Beispiel | |
| 79 | +|---------|------------|----------| |
| 80 | +| Variablen | camelCase | `userName`, `isLoading` | |
| 81 | +| Komponenten/Klassen | PascalCase | `AgentCard`, `FileSearchService` | |
| 82 | +| Konstanten | SCREAMING_SNAKE_CASE | `MAX_RETRIES`, `API_BASE_URL` | |
| 83 | + |
| 84 | +### Dokumentation |
| 85 | +- Jede Funktion/Komponente mit **JSDoc** dokumentieren |
| 86 | +```typescript |
| 87 | +/** |
| 88 | + * Searches files on disk based on query |
| 89 | + * @param query - Natural language search query |
| 90 | + * @param options - Search configuration options |
| 91 | + * @returns Array of matching file paths |
| 92 | + */ |
| 93 | +``` |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## Frontend-Backend-Integration |
| 98 | + |
| 99 | +1. **API-Endpunkte** immer explizit mit Frontend-Komponenten verknüpfen |
| 100 | +2. **Login/Auth**: Backend-Route UND Frontend-Handler gemeinsam implementieren |
| 101 | +3. **State-Management** vor UI-Komponenten entwickeln |
| 102 | +4. **Error-Handling** für ALLE API-Aufrufe: |
| 103 | + - try/catch |
| 104 | + - Loading-States |
| 105 | + - Error-States |
| 106 | +5. **API-Response-Types** zwischen Frontend und Backend teilen (`/src/shared/types/`) |
| 107 | + |
| 108 | +--- |
| 109 | + |
| 110 | +## Entwicklungsprozess |
| 111 | + |
| 112 | +1. Code in **kleinen, testbaren Schritten** generieren |
| 113 | +2. Nach jedem Schritt: **Funktionalität verifizieren** bevor weiter |
| 114 | +3. Bei Fehlern: **Exakte Error-Message analysieren**, Root Cause zuerst fixen |
| 115 | +4. **Keine isolierten Snippets** – immer Kontext zur Gesamtarchitektur beachten |
| 116 | +5. **Abhängigkeiten** zwischen Modulen explizit benennen |
| 117 | + |
| 118 | +--- |
| 119 | + |
| 120 | +## Sicherheit |
| 121 | + |
| 122 | +- [ ] Input-Validierung auf Frontend **UND** Backend |
| 123 | +- [ ] XSS/SQL-Injection Prevention beachten |
| 124 | +- [ ] Secrets **niemals** im Code hardcoden – Environment Variables nutzen |
| 125 | +- [ ] Authentication/Authorization bei **jedem** Endpoint prüfen |
| 126 | + |
| 127 | +### Verbotene Dateien |
| 128 | +``` |
| 129 | +.env |
| 130 | +.env.local |
| 131 | +secrets/ |
| 132 | +credentials/ |
| 133 | +*.pem |
| 134 | +*.key |
| 135 | +``` |
| 136 | + |
| 137 | +--- |
| 138 | + |
| 139 | +## Code-Qualität |
| 140 | + |
| 141 | +### DRY-Prinzip |
| 142 | +Wiederholungen vermeiden, in Funktionen auslagern |
| 143 | + |
| 144 | +### Single Responsibility |
| 145 | +Eine Funktion = eine Aufgabe |
| 146 | + |
| 147 | +### Früh returnen |
| 148 | +```typescript |
| 149 | +// Gut ✅ |
| 150 | +function process(data: Data | null): Result { |
| 151 | + if (!data) return null; |
| 152 | + if (!data.isValid) return { error: 'Invalid' }; |
| 153 | + |
| 154 | + return processData(data); |
| 155 | +} |
| 156 | + |
| 157 | +// Schlecht ❌ |
| 158 | +function process(data: Data | null): Result { |
| 159 | + if (data) { |
| 160 | + if (data.isValid) { |
| 161 | + return processData(data); |
| 162 | + } else { |
| 163 | + return { error: 'Invalid' }; |
| 164 | + } |
| 165 | + } |
| 166 | + return null; |
| 167 | +} |
| 168 | +``` |
| 169 | + |
| 170 | +### Aussagekräftige Namen |
| 171 | +```typescript |
| 172 | +// Gut ✅ |
| 173 | +const isUserAuthenticated = checkAuth(user); |
| 174 | +const fetchUserProfile = async (userId: string) => { ... }; |
| 175 | + |
| 176 | +// Schlecht ❌ |
| 177 | +const x = check(u); |
| 178 | +const getData = async (id) => { ... }; |
| 179 | +``` |
| 180 | + |
| 181 | +--- |
| 182 | + |
| 183 | +## Supervisor-System (Cloud Agents) |
| 184 | + |
| 185 | +### Hierarchie |
| 186 | +``` |
| 187 | +META_SUPERVISOR (Routing + Monitoring) |
| 188 | + ↓ |
| 189 | +ENGINEERING_LEAD_SUPERVISOR (Plan + Delegate + Verify + STOP) |
| 190 | + ↓ |
| 191 | +CLOUD_ASSISTANT (Execute + Report + Evidence) |
| 192 | +``` |
| 193 | + |
| 194 | +### Kernprinzipien |
| 195 | +1. **Evidence-Based Verification**: Keine Behauptung ohne Beweis |
| 196 | +2. **STOP is Success**: Bei Risiko ist STOP die richtige Entscheidung |
| 197 | +3. **Cross-Layer Consistency**: Frontend ↔ Backend ↔ Database Alignment |
| 198 | + |
| 199 | +### STOP-Score (0-100) |
| 200 | +| Score | Risk Level | Aktion | |
| 201 | +|-------|------------|--------| |
| 202 | +| 0-19 | LOW | Weiter | |
| 203 | +| 20-44 | MEDIUM | Review | |
| 204 | +| 45-69 | HIGH | Approval nötig | |
| 205 | +| 70-100 | CRITICAL | **STOP_REQUIRED** | |
| 206 | + |
| 207 | +--- |
| 208 | + |
| 209 | +## AI-Provider Integration |
| 210 | + |
| 211 | +### Priorität |
| 212 | +1. **Cloud AI** (wenn Internet verfügbar): |
| 213 | + - Claude (Anthropic) |
| 214 | + - GPT-4 (OpenAI) |
| 215 | + - Grok (xAI) |
| 216 | + |
| 217 | +2. **Lokale AI** (offline Fallback): |
| 218 | + - Ollama (Llama, Mistral) |
| 219 | + - LM Studio |
| 220 | + |
| 221 | +### API-Key Konfiguration |
| 222 | +```bash |
| 223 | +# .env.local (niemals committen!) |
| 224 | +ANTHROPIC_API_KEY=sk-... |
| 225 | +OPENAI_API_KEY=sk-... |
| 226 | +XAI_API_KEY=xai-... |
| 227 | +``` |
0 commit comments