[
  {
    "id": "odoo",
    "name": "Odoo 18 CE",
    "rolle": "ERP-Plattform",
    "einordnung": "Bestand",
    "quelle": "T01",
    "projektquelle": "Q01",
    "nutzen": "Verknüpft Personen, Projekte, Anwesenheiten und analytische Zeitbuchungen.",
    "grenze": "Sieben Fachmodule vorhanden; Installation, Upgrade und Zielversion noch prüfen."
  },
  {
    "id": "python",
    "name": "Python",
    "rolle": "Fachlogik",
    "einordnung": "Bestand",
    "quelle": "T01",
    "projektquelle": "S03",
    "nutzen": "Programmiersprache der Odoo- und Standalone-Logik.",
    "grenze": "Der Sprachname sagt nichts über die getestete Fachabdeckung."
  },
  {
    "id": "fastapi",
    "name": "FastAPI",
    "rolle": "API / eigenständiger Weg",
    "einordnung": "Bestand",
    "quelle": "T02",
    "projektquelle": "S03",
    "nutzen": "Stellt definierte Serverzugriffe und Validierung für den Standalone-Weg bereit.",
    "grenze": "Hier wird kein FastAPI-Server gestartet und keine Buchung ausgelöst."
  },
  {
    "id": "sqlite",
    "name": "SQLite",
    "rolle": "Lokale Datenbank",
    "einordnung": "Bestand",
    "quelle": "T03",
    "projektquelle": "S03",
    "nutzen": "Speichert Daten des eigenständigen Ansatzes ohne separates Datenbank-Serverprodukt.",
    "grenze": "Mehrbenutzerlast, Sperren, Sicherung und Wiederherstellung sind Prüfaufgaben."
  },
  {
    "id": "postgresql",
    "name": "PostgreSQL",
    "rolle": "Odoo-Datenbasis",
    "einordnung": "Plattform",
    "quelle": "T01",
    "projektquelle": "Q02",
    "nutzen": "Datenbank der Odoo-Plattform; nicht die SQLite-Datei des Standalone-Wegs.",
    "grenze": "Der historische ORM-Lauf scheiterte schon an der Datenbank-Namensauflösung."
  },
  {
    "id": "docker",
    "name": "Docker",
    "rolle": "Reproduzierbare Umgebung",
    "einordnung": "Werkzeug",
    "quelle": "T04",
    "projektquelle": "S07",
    "nutzen": "Trennt Dienste und ihre Abhängigkeiten in einer definierten Umgebung.",
    "grenze": "Kein Nachweis für vorhandene Backups, Monitoring oder Produktivbetrieb."
  },
  {
    "id": "git",
    "name": "Git",
    "rolle": "Änderungshistorie",
    "einordnung": "Werkzeug",
    "quelle": "B01",
    "projektquelle": "S01",
    "nutzen": "Macht Dateistände, Unterschiede und Übergaben nachvollziehbar.",
    "grenze": "Ein Commit ist weder Arbeitszeitmessung noch erfolgreiche Abnahme."
  },
  {
    "id": "html5",
    "name": "HTML",
    "rolle": "Seiten und Demos",
    "einordnung": "Bericht",
    "quelle": "B01",
    "projektquelle": "S11",
    "nutzen": "Die Berichtsinhalte liegen als echte Dateien vor und sind ohne Server lesbar.",
    "grenze": "Ein iframe zeigt eine lokale Demo, keinen angemeldeten Odoo-Produktivserver."
  },
  {
    "id": "javascript",
    "name": "JavaScript",
    "rolle": "Bedienung im Browser",
    "einordnung": "Bericht",
    "quelle": "B01",
    "projektquelle": "S11",
    "nutzen": "Filter, Touren, Rechner, Animationen und lokale Exporte.",
    "grenze": "Die Browserausführung in dieser Umgebung ist weiterhin nicht abgenommen."
  },
  {
    "id": "manrope",
    "name": "Manrope",
    "rolle": "Lokale Typografie",
    "einordnung": "Bericht",
    "quelle": "S12",
    "projektquelle": "B01",
    "nutzen": "Einheitliche Schrift für Website und Export; im Stylesheet eingebettet.",
    "grenze": "Keine separaten Schriftdateien im Markenkit."
  },
  {
    "id": "matrix",
    "name": "Matrix",
    "rolle": "Audio-Projektion",
    "einordnung": "Ausbauidee",
    "quelle": "A01",
    "projektquelle": "A01",
    "nutzen": "Omni Audio Matrix kann Ergebnisse in nachvollziehbare Gesprächsereignisse projizieren.",
    "grenze": "Kein eingebauter Lunis-Sink, keine produktive Rechte- oder Live-Zusage."
  },
  {
    "id": "ollama",
    "name": "Lokale Modelle",
    "rolle": "Werkzeugvorschläge",
    "einordnung": "Ausbauidee",
    "quelle": "T05",
    "projektquelle": "A01",
    "nutzen": "Ein Modell könnte eine Aktion vorschlagen; Freigabe und Ausführung liegen außerhalb des Modells.",
    "grenze": "Kein ausgewähltes Modell, keine garantierte Latenz und keine autonome Buchung."
  }
]
