Dynamische Keyword-Extraktion fuer RSS-Filterung + min_matches-Fix

- researcher.py: Neuer dedizierter Haiku-Call extract_dynamic_keywords()
  analysiert die letzten 30 Headlines und generiert 5 DE+EN Begriffspaare
- orchestrator.py: Dynamische Keywords vor Feed-Selektion aus DB-Headlines
- rss_parser.py: min_matches auf max 2 gedeckelt (vorher n/2, bei 10 Keywords = 5)
- analyzer.py: Fettdruck-Anweisungen entfernt

Vorher: 0 RSS-Treffer (min_matches=5 unerreichbar)
Nachher: 22 RSS-Treffer (Tagesschau 11, Al Jazeera 5, BBC 4, NYT 2)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-03-07 23:12:17 +01:00
Ursprung 29dc457ceb
Commit 7734eefd35
4 geänderte Dateien mit 101 neuen und 7 gelöschten Zeilen

Datei anzeigen

@@ -90,7 +90,7 @@ REGELN:
- Nummeriere die Quellen fortlaufend ab [1]
- Ältere Quellen zeitlich einordnen (z.B. "laut einem Bericht vom Januar", "Anfang Februar berichtete...")
- Markdown-Überschriften (##) für die Abschnitte verwenden
- Fettdruck (**) für Schlüsselbegriffe erlaubt
- KEIN Fettdruck (**) verwenden
Antworte AUSSCHLIESSLICH als JSON-Objekt mit diesen Feldern:
- "summary": Das strukturierte Briefing als Markdown-Text mit Quellenverweisen [1], [2] etc.
@@ -126,7 +126,7 @@ AUFTRAG:
STRUKTUR:
- Fließtext oder mit Markdown-Zwischenüberschriften (##) — je nach Komplexität
- Neue Entwicklungen mit **Fettdruck** hervorheben
- KEIN Fettdruck (**) verwenden
REGELN:
- Neutral und sachlich - keine Wertungen oder Spekulationen
@@ -173,7 +173,7 @@ Aktualisiere das Briefing (max. 800 Wörter) mit den neuen Erkenntnissen. Behalt
REGELN:
- Bisherige gesicherte Fakten beibehalten
- Neue Erkenntnisse einarbeiten und mit **Fettdruck** hervorheben
- Neue Erkenntnisse einarbeiten
- Veraltete Informationen aktualisieren
- Quellen immer mit [Nr] referenzieren
- Das sources-Array muss ALLE Quellen enthalten (bisherige + neue)