# Qualitätsprüfung der bestehenden Website

**Nachtrag:** Der gesamte Produktbereich wurde auf Wunsch entfernt: Seite, Produktkatalog, Verlinkungen, JavaScript und CSS. Aktueller Umfang: 15 HTML-Seiten. Die unten dokumentierte frühere Produktprüfung beschreibt den damaligen Stand; aktuelle Tests prüfen ausdrücklich die vollständige Entfernung. Rezeptdaten und Nährwertreferenzen bleiben erhalten.

Abgeschlossen am 26.09.2026. Geprüft wurde der bestehende Bestand, nicht eine neue Rezeptauswahl. Das vorhandene Design wurde erhalten.

## Umfang und nachvollziehbare Zahlen

| Prüfung / Änderung | Ergebnis |
|---|---:|
| Vorhandene Rezepte geprüft | **351 von 351** |
| Neu hinzugefügt / gelöscht | **0 / 0** |
| Rezepte mit geänderten Daten oder neu berechneten abweichenden Nährwerten | **347** |
| Überarbeitete Zubereitungsanleitungen | **292** |
| Rezepte mit mindestens einem veränderten Nährwert | **324** |
| Korrigierte Gesamtzeitangaben | **109** |
| Geprüfte Lebensmittelprofile | **97** |
| Original-CoFID-Profile gegen Quelldatei abgeglichen | **96**, keine Übertragungsabweichung |
| Vollständige Referenzprofile ersetzt/ergänzt | **28** unter bestehenden IDs |
| Sprachliche Zutaten-/Anleitungs-Prüftreffer vorher / nachher | **825 / 0** |
| Davon konkrete nicht gelistete Zutatenreferenzen | **552** in **235** Rezepten, entfernt bzw. konkretisiert |
| Davon gelistete Zutaten nicht ausdrücklich benannt | **273**, Verwendung ausdrücklich konkretisiert |
| Zusätzliche inhaltliche Klarstellungen, nicht vom Wortabgleich erkannt | **3**: zwei Zwiebel-Verwendungen und „Bohnen“ statt Kichererbsen |
| Rezepte mit geänderten Tags | **57**; „günstig“ entfernt |
| Korrigierte Vegan-/Vegetarisch-Zuordnungen | **0**, keine widersprüchliche Zuordnung gefunden |
| Korrigierte Allergen-Zuordnungen | **0**, zentrale Listen und alle Rezeptfilter bestätigt |
| Automatisch veränderte Pre-/Post-Workout-Einordnung | **7 / 89**, infolge der neuen Referenzwerte |
| Rezept-Makro-Warnungen nach Prüfung | **0** bei dokumentierter Prüfschwelle |
| Nahe Rezeptpaare zur inhaltlichen Prüfung | **2**, begründet beibehalten |

**Die 825 Sprachprüftreffer sind nicht 825 erwiesene Kochfehler.** Darunter waren allgemeine „Obst“-/„Gemüse“-Verweise und bedingte Formulierungen wie „falls enthalten“. Solche Formulierungen können theoretisch interpretierbar sein, wurden aber zugunsten eindeutiger konkreter Schritte ersetzt. Gezählt wird je Rezept, Zutaten-ID und Prüfrichtung, nicht jedes wiederholte Wort. Die zusätzlichen drei Klarstellungen werden separat gezählt. Die Prüfung ist eine systematische redaktionelle Daten-/Textprüfung mit KI-Unterstützung; kein praktisches Probekochen und keine externe ernährungswissenschaftliche Freigabe.

## Vorgehen bei allen Rezepten

1. Unveränderlichen Vergleichsstand in `tests/audit-baseline.json` gesichert.
2. IDs, Namen, Mengen, Einheiten, Quellen, Portionen, Zeiten, Ernährungsart und Tags geprüft. Zutatenlisten vor der Berechnung auf unbekannte IDs prüfen, damit Fehler verständlich gemeldet werden.
3. Originalrezepte gelesen und gezielt korrigiert. Die vorhandenen Batchrezepte nach ihren 40 Kochmethodengruppen und 19 individuellen Gerichten geprüft: konkrete Zutatenrollen, Vorbereitung, Reihenfolge, Gar-/Backzeiten, Temperatur, Bindung, Wägezustand und realistische Mengen. Die bisherigen bedingten Bausteine durch tatsächlich zutreffende Schritte ersetzt. `scripts/reviewed_methods.py` enthält die überprüften Methoden, `tests/recipe-method-review.json` die Zuordnung jedes Batchrezepts.
4. Zutaten in beiden Richtungen mit normalisierten Synonymen verglichen, Treffer inhaltlich eingeordnet und erneut geprüft. Fehlalarme wie „Lauch“ in „Knoblauch“ und „Senf“ in „Hülsenfrüchte“ in der Normalisierung behoben, nicht durch Zutatenänderungen.
5. Alle fünf Nährstoffsummen unabhängig zunächst für das gesamte Rezept ermittelt, dann durch Portionen geteilt und mit der Laufzeitrechnung verglichen. Alle **1.755** Rezept-/Nährstoffsummen stimmen rechnerisch überein.
6. Mengen, Zeiten, Nährwerte, vegane Zutaten und Allergene zusätzlich automatisiert geprüft. Korrupte Testdatensätze bestätigen die Erkennung fehlender Mengen/Quellenwerte, unbekannter Zutaten, leerer Anleitungen, doppelter IDs, falscher Tags und veganer Rezepte mit Milchprodukten.

## Konkrete Korrekturen

- Viele ältere Batchanleitungen nannten Tofu, Tempeh, Eier, Erbsen, Milchprodukte oder andere Zutaten unabhängig davon, ob sie enthalten waren. Die ausgelieferten Anleitungen nennen jetzt die konkrete Variante und deren Verwendung.
- Kidneyburger und Linsenfrikadellen: gehackte Zwiebel ausdrücklich in die Pattymasse einarbeiten.
- Couscous mit Kichererbsen: irrtümliches „Bohnen“ durch Kichererbsen ersetzt.
- Reispfanne mit Tofu: Erbsen ausdrücklich mit Karotte und Zwiebel garen; Zeit entsprechend angepasst.
- Overnight Oats/Bircher: Kühlzeit ist jetzt in 250 bzw. 40 Gesamtminuten enthalten. Lasagne, einige Pfannengerichte und Backwaren bekommen realistischere Gesamtzeiten einschließlich Ruhe-/Abkühlzeit.
- Kartoffeln werden passend zur Referenz geschält; Reisnudeln ausdrücklich gekocht abgewogen. Basmatireis wird nicht mehr kommentarlos als Rundkorn-/Risottoreis behandelt.
- Mehl ist ausdrücklich Vollkornmehl; der nicht enthaltene Kräuteranteil verschwindet aus dem Titel der Ofenkartoffeln mit Gurkenquark.
- Keine Zutaten blind ergänzt, nur um einen Worttest zu bestehen. Alle 351 IDs bleiben bestehen.

## Nährwerte: Befunde und Quellen

**Kein allgemeiner Summierungs- oder Portionsdivisionsfehler gefunden.** Die großen Veränderungen entstehen durch präzisere Referenzprodukte und vervollständigte Quellenprofile, insbesondere festen Tofu statt wasserreichem Tofu. Beispiel Kürbis-Tofu-Lasagne: bisher 658,55, jetzt 819,55 kcal pro Portion. Das ist eine Referenzkorrektur, keine nach Gefühl geschätzte Energie.

Beim vom Nutzer genannten Kakao-Bananen-Quarkshake waren **192,22 kcal pro Portion bei zwei Portionen**, also **384,44 kcal insgesamt**, hinterlegt. Nach Wechsel des vollständigen Kakaoprofils: **187,18 kcal pro Portion / 374,36 kcal insgesamt**. Die neue Gesamtanzeige verhindert die Verwechslung mit den Zutaten für das ganze Rezept. Die Banane allein liefert aus der verwendeten Referenz 162 kcal bei 200 g.

Die 4/4/9-Probe wurde für jedes Rezept gerechnet. Warnschwelle: Abweichung größer als max(40 kcal, 15 % der Rezeptenergie pro Portion). Bei Lebensmitteln max(15 kcal, 15 %). Vier Lebensmittel fielen auf: Zimt, Kakao, Perlgraupen und Essig. Die ersten drei lassen sich anhand der **lebensmittelspezifischen USDA-Energiefaktoren aus der Original-CSV** auf die gerundeten Quellenkalorien zurückrechnen. Essig enthält organische Säuren, die in 4/4/9 nicht erfasst sind. Originalwerte wurden nicht künstlich passend gemacht.

Quellen:

- [CoFID 2021, Public Health England](https://www.gov.uk/government/publications/composition-of-foods-integrated-dataset-cofid), Originaldatei lokal, OGL v3.
- [USDA FoodData Central, SR Legacy 2018](https://fdc.nal.usda.gov/download-datasets/), Original-CSV-ZIP lokal, CC0/Public Domain; FDC-IDs und vollständige Profile dokumentiert.
- [Wheaty Festtagsbraten](https://www.wheaty.de/produkt/veganer-braten/), konkrete Seitanreferenz, erneut am 26.09.2026 geprüft.

Details einschließlich Kohlenhydratdefinitionen, Quelldateien, Lizenz und Energiegegenrechnungen: [NUTRITION_AUDIT.md](docs/NUTRITION_AUDIT.md). `tests/food-source-audit.json` enthält die Abgleiche und SHA-256-Prüfsummen; `tests/recipe-audit.json` enthält jedes Rezept mit Vorher-/Nachherwerten, Gesamtsummen, Änderungen und Prüftreffern.

## Ähnliche Rezepte und Klassifizierungen

Zwei Paare besitzen dieselben wesentlichen Zutaten-IDs, bleiben aber sinnvolle unterschiedliche Gerichte: Banane-Erdnuss-Porridge gegenüber gebackenen Haferriegeln; Tomate-Mozzarella-Panini gegenüber kalten Spießen. Mengen pro Portion und Zubereitung unterscheiden sich deutlich. Keine identischen vollständigen Zutatenmengen gefunden.

Vegane/vegetarische Kennzeichnungen stimmen mit der beschriebenen Produktauswahl überein. Feta/Mozzarella setzen mikrobielles Lab voraus; Tortillas und weitere verarbeitete Produkte müssen passend gewählt werden. Unabhängige Allergen-Erwartungslisten wurden über alle 351 Rezepte gegen die Filter geprüft. Hinweise auf Produktetiketten, Spuren und Kreuzkontamination bleiben sichtbar. Es gibt keine Allergiesicherheitsgarantie.

## Navigation und UX

- Sieben Hauptpunkte: Start · Rezepte · Aus meinen Zutaten · Einkaufsliste · Produkte · Wissen · Bedarfsrechner.
- Separaten Heute-Bereich einschließlich Seite und Vorschlagslogik entfernt; gemeinsame Daten bleiben erhalten.
- „Überrasch mich“ im Rezeptbereich wählt genau aus der aktuellen gefilterten Menge. Bei null Treffern keine stillschweigende Filterlockerung.
- Günstig-Filter auch auf der Startseite entfernt. Klassiker als kombinierbarer Filter, nicht mehr Hauptmenüpunkt. Ältere Klassiker-Seite bleibt für bestehende Links nutzbar.
- Anfänger/Sehr einfach und Pre Workout außerhalb der aufgeklappten Zusatzfilter sichtbar.
- Vorratsbereich in „Aus meinen Zutaten“ umbenannt. Produktbereich heißt wegen seiner breiten Auswahl „Produkte“.
- Sechs sichtbare Wissenseinstiege mit funktionierenden Abschnittslinks.
- Nährwerte pro Portion und für die ganze gewählte Menge deutlich unterschieden; fünf Gesamtwerte aktualisieren sich mit der Portionszahl.
- Farben, Typografie, bestehende Karten, Layoutgrundlagen und Animationen erhalten.

## Erfolgreich ausgeführte Tests

| Prüfung | Ergebnis / Nachweis |
|---|---|
| Daten-/Schema-Validierung, alle 351 Rezepte und 97 Lebensmittel | bestanden, `tests/data-validation.json` |
| Quellenprüfung und 1.755 Summen, Portionen, Makroprobe, Sprachprüfung | bestanden, `tests/recipe-audit.json` und `food-source-audit.json` |
| Rechner mit mehreren Personen, Grenzen, ungültige Angaben; Filter/Sortierung/Skalierung | 18 Testgruppen, `tests/core.test.cjs` |
| Absichtlich defekte Daten, unabhängige Allergenerwartungen und Fünf-Nährstoff-Handrechnung | bestanden, `tests/quality.test.cjs` |
| Alle 16 Seiten, alle 351 Rezeptdetailansichten, lokale Links/Assets, Favoriten, Filter, Zufall, Rechner | bestanden, `tests/browser-results.json` |
| 5 Portionen → wiederholt zur Liste → kg/g zusammenführen → Vorrat abhaken → Rest exportieren | bestanden, `tests/extensions-results.json` |
| Kopieren/Fallback, TXT-Download, Druck/PDF, LocalStorage blockiert, Produktsuche, Quiz, Swaps/Praxis | bestanden, `tests/extensions-results.json` |
| Desktop-/Tablet-/Mobile-Layouts | 360, 390, 768, 1440 px; zusätzliche Navigation bei 961, 1024, 1200 px |
| Alle sieben Navigationsziele angeklickt, sechs Wissenskacheln, Klassiker-Kombinationen, Shake-Skalierung | bestanden, `tests/quality-browser-results.json` |
| Druck, Tastaturfokus, zugängliche Formularnamen, Bild-Alternativtexte, Edge-Smoke-Test | bestanden, `tests/review.cjs` |
| Browserkonsole / externe Laufzeitanfragen / horizontale Überläufe | keine in den geprüften Abläufen |
| Performance | 100 kombinierte Suchdurchläufe im Test etwa 26 ms; 24 Karten initial, kein Rendern aller 351 Karten |

Alle Browserprüfungen öffnen die vorhandenen Dateien **direkt über `file://`**. Screenshots in `tests/` wurden ergänzend visuell geprüft. Grundlegende Accessibility-Prüfungen sind kein vollständiges WCAG-Zertifikat.

## Verbleibende Grenzen

- **64 Rezepte besitzen eine offene Ballaststoffkomponente:** 33 mit Magerquark, 15 mit Tempeh, 16 mit Seitan. Die Quellen deklarieren dafür keine geeigneten Werte. Sichtbar als bekannte Teilmenge mit `≥`, keine erfundenen Nullen; Pre-Workout-Grenzen schließen unvollständige Ballaststoffdaten aus. Alle Energie-, Protein-, Kohlenhydrat- und Fettwerte sind im aktuellen Bestand belegt.
- Referenzwerte sind keine Laboranalyse der konkret gekauften Produkte. CoFID-/USDA-Kohlenhydratdefinitionen, Sorten, Marken, Garverluste und Referenzzustände führen zu Abweichungen.
- Rezepte wurden **nicht praktisch probegekocht**. Geschmack, Textur und gerätespezifische Garzeiten sollten bei weiterer redaktioneller Pflege durch echte Kochtests überprüft werden.
- Der Zutaten-Wortabgleich erkennt nicht jede sprachliche Umschreibung und nicht jede falsche Kochtechnik. Er ergänzt die inhaltliche Prüfung. Zwei nahe Rezeptpaare bleiben bewusst bestehen.
- Produktpreise und Verfügbarkeit bleiben datierte Momentaufnahmen. Keine Neuprüfung sämtlicher Fachartikel oder Rechtsprüfung im Rahmen dieses Rezept-/UX-Auftrags. Betreiber-/Datenschutzplatzhalter bleiben bewusst offen.
