Files
Brancheneinstufung2/MIGRATION_PLAN.md

75 lines
3.6 KiB
Markdown

# Migrations-Plan: Legacy GSheets -> Company Explorer (Robotics Edition v0.8.5)
**Kontext:** Strategische Neuausrichtung der Lead-Analyse für RoboPlanet.
**Zentrale Philosophie:** Trennung von CRM-Historie ("Was wir wissen") und KI-Recherche ("Was aktuell wahr ist").
## 14. Detaillierte Logik der neuen Datenfelder (v2.0)
Um Gemini CLI (dem Bautrupp) die Umsetzung zu ermöglichen, hier die semantische Bedeutung und Implementierungs-Logik der neuen Spalten:
### 14.1 Qualitäts- & Abgleich-Metriken (Tabelle `companies`)
* **`confidence_score` (FLOAT, 0.0 - 1.0):**
* **Bedeutung:** Vertrauensindex der KI-Klassifizierung.
* **UI-Logik:**
* `>= 0.8`: Status "Grün". Vertrauenswürdige Daten.
* `0.5 - 0.79`: Status "Gelb". Erfordert manuellen Check (Review).
* `< 0.5`: Status "Rot". KI-Ergebnis unsicher.
* **Hintergrund:** Verhindert, dass Sniper-Texte auf Basis falscher Branchen-Zuordnungen generiert werden.
* **`data_mismatch_score` (FLOAT, 0.0 - 1.0):**
* **Bedeutung:** Metrik für die Abweichung zwischen SuperOffice-Bestand und Web-Recherche.
* **Rechenweg:** Die KI vergleicht Name, Adresse und Website.
* `0.0`: Identisch (Voll-Treffer).
* `0.5`: Teil-Mismatch (z.B. Firma heißt im Web leicht anders oder ist innerhalb der Stadt umgezogen).
* `1.0`: Voller Mismatch (Zwei komplett verschiedene Firmen).
* **UI-Ziel:** Im Inspector soll bei Werten `> 0.3` eine Warnung erscheinen: *"Achtung: Stammdaten weichen von Recherche ab!"*
* **`crm_name`, `crm_address`, `crm_website`, `crm_vat`:**
* **Zweck:** Read-Only Snapshot aus SuperOffice.
* **Wichtig:** Diese Felder werden nie durch die Web-Recherche überschrieben. Sie dienen dem Side-by-Side Vergleich.
* **Status-Flags:**
* **`website_scrape_status`**: Zeigt an, ob die Firmenwebsite erfolgreich ausgelesen wurde (`SUCCESS`, `FAILED`, `BLOCKED`).
* **`wiki_search_status`**: Dokumentiert, ob ein Wikipedia-Eintrag gefunden wurde (`FOUND`, `NOT_FOUND`).
### 14.2 Strategie-Parameter (Tabelle `industries`)
* **`pains` / `gains`:**
* Enthalten formatierte Textblöcke.
* **Struktur:**
`[Primary Product: Cleaning]`
`- Pain A`
`- Pain B`
`[Secondary Product: Service]`
`- Pain C`
* **Anforderung:** Das Frontend muss diese Blöcke sauber formatiert (whitespace-aware) anzeigen.
* **`ops_focus_secondary` (BOOLEAN):**
* **Strategischer Hebel:** Wenn auf `True` gesetzt, muss die Lead-Engine für operative Rollen (z.B. "Pflegedienstleitung") automatisch das Sekundärprodukt wählen, da hier der "Teller-Transport" wichtiger ist als die "Bodenreinigung".
---
## 15. Anweisungen für Gemini CLI (Arbeitspakete)
### Task 1: UI-Implementierung "Data Match & Strategy"
**1. Inspector.tsx (Account Detail):**
* Implementiere eine `CRMComparisonCard`.
* Vergleiche `crm_name` vs `name` und `crm_website` vs `website`.
* Visualisiere den `data_mismatch_score` als Ampel oder Score-Balken.
* **Fix:** Korrigiere den Aufruf der `ContactsManager` Komponente (erwartet `contacts` Array).
**2. RoboticsSettings.tsx (Settings):**
* Erweitere die `Industries`-Tabelle um die Spalten `Pains`, `Gains`, `Priorität` und `Secondary Product`.
* Ermögliche das Ein-/Auskappen von langen Pain-Texten zur besseren Übersicht.
---
## 16. Deployment-Referenz (NAS)
* **Pfad:** `/volume1/homes/Floke/python/brancheneinstufung/company-explorer`
* **DB:** `/app/companies_v3_fixed_2.db`
* **Sync:** `docker exec -it company-explorer python backend/scripts/sync_notion_to_ce_enhanced.py`