Files
Brancheneinstufung2/MIGRATION_PLAN.md

7.5 KiB

Migrations-Plan: Legacy GSheets -> Company Explorer (Robotics Edition v0.4.0)

Kontext: Neuanfang für die Branche Robotik & Facility Management. Ziel: Ablösung von Google Sheets/CLI durch eine Web-App ("Company Explorer") mit SQLite-Backend.

1. Strategische Neuausrichtung

Bereich Alt (Legacy) Neu (Robotics Edition)
Daten-Basis Google Sheets SQLite (Lokal, performant, filterbar).
Ziel-Daten Allgemein / Kundenservice Robotics-Signale (SPA-Bereich? Intralogistik? Werkschutz?).
Branchen KI-Vorschlag (Freitext) Strict Mode: Mapping auf feste CRM-Liste (z.B. "Hotellerie", "Maschinenbau").
Texterstellung Pain/Gain Matrix (Service) Pain/Gain Matrix (Robotics). "Übersetzung" des alten Wissens auf Roboter.
Analytics Techniker-ML-Modell Deaktiviert. Vorerst keine Relevanz.
Operations D365 Sync (Broken) Excel-Import & Deduplizierung. Fokus auf Matching externer Listen gegen Bestand.

2. Architektur & Komponenten-Mapping

Das System wird in company-explorer/ neu aufgebaut. Wir lösen Abhängigkeiten zur Root helpers.py auf.

A. Core Backend (backend/)

Komponente Aufgabe & Neue Logik Prio
Database Ersetzt GoogleSheetHandler. Speichert Firmen & "Enrichment Blobs". 1
Importer Ersetzt SyncManager. Importiert Excel-Dumps (CRM) und Event-Listen. 1
Deduplicator Ersetzt company_deduplicator.py. Kern-Feature: Checkt Event-Listen gegen DB. Muss "intelligent" matchen (Name + Ort + Web). 1
Scraper (Base) Extrahiert Text von Websites. Basis für alle Analysen. 1
Signal Detector NEU. Analysiert Website-Text auf Roboter-Potential.
Logik: Wenn Branche = Hotel & Keyword = "Wellness" -> Potential: Reinigungsroboter.
1
Classifier Brancheneinstufung. Strict Mode: Prüft gegen config/allowed_industries.json. 2
Marketing Engine Ersetzt generate_marketing_text.py. Nutzt neue marketing_wissen_robotics.yaml. 3

B. Frontend (frontend/) - React

  • View 1: Der "Explorer": DataGrid aller Firmen. Filterbar nach "Roboter-Potential" und Status.
  • View 2: Der "Inspector": Detailansicht einer Firma. Zeigt gefundene Signale ("Hat SPA Bereich"). Manuelle Korrektur-Möglichkeit.
  • View 3: "List Matcher": Upload einer Excel-Liste -> Anzeige von Duplikaten -> Button "Neue importieren".

3. Umgang mit Shared Code (helpers.py & Co.)

Wir kapseln das neue Projekt vollständig ab ("Fork & Clean").

  • Quelle: helpers.py (Root)

  • Ziel: company-explorer/backend/lib/core_utils.py

  • Aktion: Wir kopieren nur:

    • OpenAI/Gemini Wrapper (Retry Logic).
    • Text Cleaning (clean_text, normalize_string).
    • URL Normalization.
  • Quelle: Andere Gemini Apps (duckdns, gtm-architect, market-intel)

  • Aktion: Wir betrachten diese als Referenz. Nützliche Logik (z.B. die "Grit"-Prompts aus market-intel) wird explizit in die neuen Service-Module kopiert.

4. Datenstruktur (SQLite Schema)

Tabelle companies (Stammdaten)

  • id (PK)
  • name (String)
  • website (String)
  • crm_id (String, nullable - Link zum D365)
  • industry_crm (String - Die "erlaubte" Branche)
  • city (String)
  • country (String)
  • status (Enum: NEW, IMPORTED, ENRICHED, QUALIFIED)

Tabelle signals (Roboter-Potential)

  • company_id (FK)
  • signal_type (z.B. "has_spa", "has_large_warehouse", "has_security_needs")
  • confidence (Float)
  • proof_text (Snippet von der Website)

Tabelle duplicates_log

  • Speichert Ergebnisse von Listen-Abgleichen ("Upload X enthielt 20 bekannte Firmen").

5. Phasenplan Umsetzung

  1. Housekeeping: Archivierung des Legacy-Codes (_legacy_gsheets_system).
  2. Setup: Init company-explorer (Backend + Frontend Skeleton).
  3. Foundation: DB-Schema + "List Matcher" (Deduplizierung ist Prio A für Operations).
  4. Enrichment: Implementierung des Scrapers + Signal Detector (Robotics).
  5. UI: React Interface für die Daten.

7. Historie & Fixes (Jan 2026)

  • [UPGRADE] v0.4.0: Export & Manual Impressum

    • JSON Export: Erweiterung der Detailansicht um einen "Export JSON"-Button, der alle Unternehmensdaten (inkl. Anreicherungen und Signale) herunterlädt.
    • Zeitstempel: Anzeige des Erstellungsdatums für jeden Anreicherungsdatensatz (Wikipedia, AI Dossier, Impressum) in der Detailansicht.
    • Manuelle Impressum-URL: Möglichkeit zur manuellen Eingabe einer Impressum-URL in der Detailansicht, um die Extraktion von Firmendaten zu erzwingen.
    • Frontend-Fix: Behebung eines Build-Fehlers (Unexpected token) in Inspector.tsx durch Entfernung eines duplizierten JSX-Blocks.
  • [UPGRADE] v2.6.2: Report Completeness & Edit Mode

    • Edit Hard Facts: Neue Funktion in Phase 1 ("Edit Raw Data") erlaubt die manuelle Korrektur der extrahierten technischen JSON-Daten.
    • Report-Update: Phase 5 Prompt wurde angepasst, um explizit die Ergebnisse aus Phase 2 (ICPs & Data Proxies) im finalen Report aufzuführen.
    • Backend-Fix: Korrektur eines Fehlers beim Speichern von JSON-Daten, der auftrat, wenn Datenbank-Inhalte als Strings vorlagen.
  • [UPGRADE] v2.6.1: Stability & UI Improvements

    • White Screen Fix: Robuste Absicherung des Frontends gegen undefined-Werte beim Laden älterer Sitzungen (optional chaining).
    • Session Browser: Komplettes Redesign der Sitzungsübersicht zu einer übersichtlichen Listenansicht mit Icons (Reinigung/Service/Transport/Security).
    • URL-Anzeige: Die Quell-URL wird nun als dedizierter Link angezeigt und das Projekt automatisch basierend auf dem erkannten Produktnamen umbenannt.
  • [UPGRADE] v2.6: Rich Session Browser

    • Neues UI: Die textbasierte Liste für "Letzte Sitzungen" wurde durch eine dedizierte, kartenbasierte UI (SessionBrowser.tsx) ersetzt.
    • Angereicherte Daten: Jede Sitzungskarte zeigt nun den Produktnamen, die Produktkategorie (mit Icon), eine Kurzbeschreibung und einen Thumbnail-Platzhalter an.
    • Backend-Anpassung: Die Datenbankabfrage (gtm_db_manager.py) wurde erweitert, um diese Metadaten direkt aus der JSON-Spalte zu extrahieren und an das Frontend zu liefern.
    • Verbesserte UX: Deutlich verbesserte Übersichtlichkeit und schnellere Identifikation von vergangenen Analysen.
  • [UPGRADE] v2.5: Hard Fact Extraction

    • Phase 1 Erweiterung: Implementierung eines sekundären Extraktions-Schritts für "Hard Facts" (Specs).
    • Strukturiertes Daten-Schema: Integration von templates/json_struktur_roboplanet.txt.
    • Normalisierung: Automatische Standardisierung von Einheiten (Minuten, cm, kg, m²/h).
    • Frontend Update: Neue UI-Komponente zur Anzeige der technischen Daten (Core Data, Layer, Extended Features).
    • Sidebar & Header: Update auf "ROBOPLANET v2.5".
  • [UPGRADE] v2.4:

    • Dokumentation der Kern-Engine (helpers.py) mit Dual SDK & Hybrid Image Generation.
    • Aktualisierung der Architektur-Übersicht und Komponenten-Beschreibungen.
    • Versionierung an den aktuellen Code-Stand (v2.4.0) angepasst.
  • [UPGRADE] v2.3:

    • Einführung der Session History (Datenbank-basiert).
    • Implementierung von Markdown-Cleaning (Stripping von Code-Blocks).
    • Prompt-Optimierung für tabellarische Markdown-Ausgaben in Phase 5.
    • Markdown-File Import Feature.