docs: Update migration plan with Notion SSoT and refined prompt variables

This commit is contained in:
2026-01-19 12:02:01 +00:00
parent 66508a28d7
commit d286ee989f

View File

@@ -152,6 +152,12 @@ Contacts stehen in 1:n Beziehung zu Accounts. Accounts können einen "Primary Co
## 7. Historie & Fixes (Jan 2026) ## 7. Historie & Fixes (Jan 2026)
* **[UPGRADE] v0.6.0: Notion Single Source of Truth (Jan 19, 2026)**
* **Notion SSoT:** Umstellung der Branchenverwaltung (`Industries`) und Robotik-Kategorien auf Notion. Lokale Änderungen im Web-Interface sind für synchronisierte Felder deaktiviert, um die Datenintegrität zu wahren.
* **Dynamische Klassifizierung:** Der `ClassificationService` lädt die `allowed_industries` nun direkt aus der Datenbank, die wiederum via Sync-Skript aus Notion befüllt wird.
* **Erweiterte Datenmodelle:** Die Datenbank wurde um Felder wie `whale_threshold`, `min_requirement`, `scraper_keywords` und `industry_group` erweitert.
* **Sync-Automation:** Bereitstellung von `backend/scripts/sync_notion_industries.py` zur manuellen oder automatisierten Aktualisierung des lokalen Datenbestands.
* **[UPGRADE] v0.5.1: Robustness, UI Fixes & Wikipedia Hardening** * **[UPGRADE] v0.5.1: Robustness, UI Fixes & Wikipedia Hardening**
* **[FIX] Critical DB Schema Mismatch (Jan 15, 2026):** * **[FIX] Critical DB Schema Mismatch (Jan 15, 2026):**
* **Problem:** Die Anwendung stürzte beim Zugriff auf Firmendetails mit `OperationalError: no such column: wiki_verified_empty` ab. * **Problem:** Die Anwendung stürzte beim Zugriff auf Firmendetails mit `OperationalError: no such column: wiki_verified_empty` ab.
@@ -302,8 +308,22 @@ Based on the identified infrastructure, score the potential for these categories
``` ```
**Variablen:** **Variablen:**
* **`company_name`**: Name des Unternehmens. * **`company_name`**: Offizieller Name des Zielunternehmens zur korrekten Identifikation im Dossier.
* **`website_text`**: Der gescrapte Text der Hauptseite (max. 20.000 Zeichen). * **`website_text`**: Der gescrapte Text der Hauptseite (max. 20.000 Zeichen), der als primäre Informationsquelle dient.
* **`allowed_industries`**: Dynamisch geladene Liste der erlaubten Branchen aus der Datenbanktabelle `industries` (konfiguriert via Settings > Industry Focus). * **`allowed_industries`**: Eine JSON-Liste der gültigen Branchen. Diese wird dynamisch aus der Datenbanktabelle `industries` geladen (synchronisiert aus Notion). Erzwingt ein sauberes CRM-Mapping.
* **`category_guidance`**: Dynamisch generierte Definitionen und Scoring-Regeln für die Robotik-Kategorien (aus der Datenbank). * **`category_guidance`**: Dynamisch generierte Definitionen und Scoring-Anweisungen für die Robotik-Kategorien. Ermöglicht die Anpassung der KI-Logik über Notion/Settings ohne Code-Änderung.
## 9. Notion Integration (Single Source of Truth)
Das System nutzt Notion als zentrales Steuerungselement für strategische Definitionen.
### 9.1 Datenfluss
1. **Definition:** Branchen und Robotik-Kategorien werden in Notion gepflegt (Whale Thresholds, Keywords, Definitionen).
2. **Synchronisation:** Das Skript `sync_notion_industries.py` zieht die Daten via API und führt einen Upsert in die lokale SQLite-Datenbank aus.
3. **App-Nutzung:** Das Web-Interface zeigt diese Daten schreibgeschützt an. Der `ClassificationService` nutzt sie als "System-Anweisung" für das LLM.
### 9.2 Technische Details
* **Notion Token:** Muss in `/app/notion_token.txt` (Container-Pfad) hinterlegt sein.
* **DB-Mapping:** Die Zuordnung erfolgt primär über die `notion_id`, sekundär über den Namen, um Dubletten bei der Migration zu vermeiden.