# Phase 2.2 Prompt - Korrektur-Bericht **Datum:** 16. Januar 2026 **Erstellt von:** Claude Code (Opus 4.5) **Prompt-Datei:** `/prompts/Phase2.2 youtube sync ai replies prompt.md` --- ## Zusammenfassung Der Phase 2.2 Prompt beschreibt die Implementierung von: 1. **YouTube Auto-Sync** - Automatischer Kommentar-Import 2. **AI Reply Suggestions** - KI-Antwortvorschläge mit Claude 3. **UI Integration** - Erweiterungen für CommunityInbox 4. **Cron-Konfiguration** - Automatische Sync-Jobs **Ergebnis:** Der Prompt enthält mehrere Annahmen über existierende Infrastruktur, die nicht zutreffen. **Korrekturen sind erforderlich.** --- ## KRITISCHE Korrektur: ClaudeAnalysisService fehlt ### Problem Der Prompt geht davon aus, dass `ClaudeAnalysisService.ts` bereits existiert: ```typescript // Prompt Zeile 44-50: // src/lib/integrations/claude/ClaudeAnalysisService.ts // - analyzeSentiment(message: string): Promise // - extractTopics(message: string): Promise // - detectMedicalContent(message: string): Promise ``` **Realität:** Das Verzeichnis `src/lib/integrations/claude/` ist LEER. ### Auswirkung Der existierende `CommentsSyncService.ts` importiert `ClaudeAnalysisService`: ```typescript // src/lib/integrations/youtube/CommentsSyncService.ts, Zeile 5: import { ClaudeAnalysisService } from '../claude/ClaudeAnalysisService' ``` **Der Code kann nicht kompiliert/ausgeführt werden, solange ClaudeAnalysisService fehlt!** ### Lösung `ClaudeAnalysisService.ts` muss ZUERST erstellt werden, bevor der Sync-Service funktioniert. Der Prompt enthält bereits den vollständigen Code dafür (Zeilen 1236-1339). --- ## Bestandsaufnahme: Was existiert bereits? ### Vorhandene Dateien | Datei | Status | Anmerkungen | |-------|--------|-------------| | `src/lib/integrations/youtube/YouTubeClient.ts` | Existiert | Leicht andere Signatur als im Prompt | | `src/lib/integrations/youtube/CommentsSyncService.ts` | Existiert | Importiert fehlenden ClaudeAnalysisService | | `src/lib/integrations/youtube/oauth.ts` | Existiert | Vollständig funktional | | `src/lib/integrations/claude/` | LEER | ClaudeAnalysisService fehlt! | | `src/collections/CommunityInteractions.ts` | Existiert | 568 Zeilen, vollständig | | `src/collections/SocialAccounts.ts` | Existiert | Vollständig | | `src/collections/SocialPlatforms.ts` | Existiert | Vollständig | | `src/lib/services/RulesEngine.ts` | Existiert | 9054 Bytes | ### Vorhandene API Routes | Route | Status | Anmerkungen | |-------|--------|-------------| | `/api/community/sync-comments/` | Existiert | POST - Manueller Sync (pro Account) | | `/api/community/analytics/*` | Existiert | 8 Endpoints (Phase 2.1) | | `/api/community/export/` | Existiert | Export-Funktionalität | | `/api/community/reply/` | Existiert | Antworten senden | | `/api/community/stats/` | Existiert | Statistiken | --- ## Korrekturen am Prompt ### 1. ClaudeAnalysisService muss erstellt werden (nicht "bereits implementiert") **Prompt-Text ändern von:** ```markdown ### Claude Integration (bereits implementiert) // src/lib/integrations/claude/ClaudeAnalysisService.ts ``` **Ändern zu:** ```markdown ### Claude Integration (MUSS ERSTELLT WERDEN) // src/lib/integrations/claude/ClaudeAnalysisService.ts // HINWEIS: Diese Datei existiert noch nicht und muss als erstes erstellt werden! ``` ### 2. API Route Namenskonvention anpassen **Prompt schlägt vor:** ``` /api/community/sync/route.ts ``` **Bereits existiert:** ``` /api/community/sync-comments/route.ts ``` **Empfehlung:** Den existierenden Pfad beibehalten oder Prompt aktualisieren. ### 3. YouTubeClient Signatur-Unterschiede **Im Prompt:** ```typescript class YouTubeClient { constructor(accessToken: string, accountId: number) { ... } static async getValidClient(accountId: number): Promise } ``` **Existierende Version:** ```typescript class YouTubeClient { constructor(credentials: YouTubeCredentials, payload: Payload) { ... } // Keine statische getValidClient Methode } ``` **Empfehlung:** Die existierende Version erweitern, nicht ersetzen. ### 4. Implementierungsreihenfolge aktualisieren **Neue empfohlene Reihenfolge:** 1. **ClaudeAnalysisService erstellen** (KRITISCH - ohne dies funktioniert nichts!) 2. Type Definitions (`youtube.ts`) 3. YouTubeClient erweitern (getValidClient Methode hinzufügen) 4. CommentsSyncService prüfen/anpassen 5. Job Runner + Logger 6. Cron Endpoint 7. ClaudeReplyService 8. API Endpoint `/generate-reply` 9. UI Integration 10. SCSS Ergänzungen --- ## Fehlende Komponenten ### Laut Prompt zu erstellen | Komponente | Pfad | Priorität | |------------|------|-----------| | ClaudeAnalysisService | `src/lib/integrations/claude/ClaudeAnalysisService.ts` | KRITISCH | | ClaudeReplyService | `src/lib/integrations/claude/ClaudeReplyService.ts` | Hoch | | Type Definitions | `src/types/youtube.ts` | Mittel | | Job Runner | `src/lib/jobs/syncAllComments.ts` | Mittel | | Job Logger | `src/lib/jobs/JobLogger.ts` | Mittel | | Cron Endpoint | `src/app/(payload)/api/cron/youtube-sync/route.ts` | Mittel | | Generate Reply | `src/app/(payload)/api/community/generate-reply/route.ts` | Hoch | ### UI-Erweiterungen - AI Reply Section in CommunityInbox - Sync Status Badge - SCSS Ergänzungen (~100 Zeilen) --- ## Collection-Feldabgleich ### CommunityInteractions - Prompt vs. Realität | Feld (Prompt) | Vorhanden | Anmerkungen | |---------------|-----------|-------------| | `externalId` | Ja | Einzigartig, indiziert | | `platform` | Ja | Relationship | | `socialAccount` | Ja | Relationship | | `linkedContent` | Ja | Relationship zu youtube-content | | `type` | Ja | comment, reply, dm, mention, review, question | | `author.*` | Ja | Vollständig | | `message` | Ja | Textarea | | `analysis.*` | Ja | Sentiment, Score, Confidence, Topics | | `flags.*` | Ja | isMedicalQuestion, requiresEscalation, isSpam, isFromInfluencer | | `status` | Ja | new, in_review, waiting, replied, resolved, archived, spam | | `priority` | Ja | urgent, high, normal, low | | `response.*` | Ja | text, usedTemplate, sentAt, sentBy | **Ergebnis:** Collection ist vollständig kompatibel mit dem Prompt. --- ## Umgebungsvariablen prüfen Der Prompt erfordert folgende Umgebungsvariablen: | Variable | Beschreibung | Status | |----------|--------------|--------| | `ANTHROPIC_API_KEY` | Claude API Key | Prüfen in .env | | `YOUTUBE_CLIENT_ID` | YouTube OAuth Client ID | Prüfen in .env | | `YOUTUBE_CLIENT_SECRET` | YouTube OAuth Client Secret | Prüfen in .env | | `YOUTUBE_REDIRECT_URI` | OAuth Callback URL | Prüfen in .env | | `CRON_SECRET` | Auth-Token für Cron-Endpoint | NEU - hinzufügen | --- ## Empfohlene nächste Schritte 1. **Sofort:** `ClaudeAnalysisService.ts` erstellen (Code aus Prompt Zeilen 1236-1339) 2. **Dann:** Build testen - `pnpm build` 3. **Danach:** Sync-Funktionalität manuell testen 4. **Fortfahren:** Restliche Komponenten implementieren --- ## Hinweise für die Implementierung ### Claude API Modell Der Prompt verwendet `claude-3-haiku-20240307`. Dieses Modell ist schnell und kostengünstig, aber veraltet. Aktuelle Alternativen: - `claude-3-5-haiku-20241022` - Neuere Version - `claude-3-5-sonnet-20241022` - Bessere Qualität bei höheren Kosten ### Rate Limiting Der Prompt enthält Rate-Limiting zwischen API-Calls: - 100ms zwischen Kommentaren - 200ms zwischen Videos Dies ist wichtig für YouTube API Quota und Claude API Kosten. ### Error Handling Die existierende `CommentsSyncService` hat Fallback-Analyse bei Claude-Fehlern - das ist gut implementiert. --- *Generiert am 16. Januar 2026 von Claude Code (Opus 4.5)*