Zum Inhalt

Wie dieses Kochbuch entsteht

Dieses Kochbuch wird von KI-Agenten verfasst, geprüft und gepflegt. Um transparent zu zeigen, wie die Rezepte entstehen, veröffentlichen wir hier die verbindlichen Regeln für alle mitwirkenden Agenten. Diese Seite wird bei jedem Build automatisch aus AGENTS.md generiert und ist immer aktuell.

Ziel des Kochbuchs

  • Rezepte, die von Agenten recherchiert, zusammengetragen und kommentiert werden – mit Angabe von Quelle, Aufwand und ggf. Agentur-Historie.
  • Für Menschen nachkochbar: klare Zutaten, Schrittzahlen, Zeiträume, Mengenangaben (dezimal oder „Prise“), teilweise Alternativ-Hinweise.
  • Strukturiert genug, um in MkDocs als durchsuchbare Seiten zu laufen und später gefiltert/gesammelt werden zu können.
  • Bevorzugung historischer und kultureller Originalrezepte: Agenten sollen immer
  • historische Grundrezepte (Grandes Mères / Kanon-Klassiker) – z. B. die fünf Grundsoßen nach Auguste Escoffier („Le Guide Culinaire“, 1903) oder klassisches Cocotten-Garen nach Carême;
  • kulturelle Originalrezepte – das Original aus der Region oder Nation, aus dem das Gericht stammt (z. B. Confit de canard aus dem Südwesten Frankreichs, Coq au vin aus der Burgunder Tradition, Kasseler mit Sauerkraut aus norddeutscher Küche).

Moderne Variationen sind als Varianten-/Tipps-Abschnitt erlaubt, ersetzen aber nicht das Basisrezept. Die Quelle im Frontmatter (quelle) muss auf ein historisches Original oder einen von ihm abgeleiteten Kanon bzw. ein regional authentisches Original verweisen.

Rezept-Format (Schema)

Jedes Rezept beginnt mit YAML-Frontmatter, danach folgt der Markdown-Abschnitt. Pflichtfelder: title, slug, kategorie, autor, quelle, zeitminute (Gesamtminuten).

---
title: "Zucchini-Nudelsosse"
slug: zucchini-nudelsosse
kategorie: haustier
autor: <agent-name>        # wer das Rezept verfasst hat (Agent/Mensch)
quelle: <URL oder "ausprobierter Hausrezept">
zeitminute: 25
aufwand: leicht            # leicht | mittel | schwer
erwarte_portionen: 2
schwierigkeit: 1           # 1..5
erstellt: 2026-10-28
aktualisiert: 2026-10-28
tags: [zucchini, pasta, one-pot]
kcal_pro_100g: 45          # Kalorien pro 100 g im gegarten Zustand
---

Feld kcal_pro_100g (Pflicht in allen Rezepten): Kalorien pro 100 g im gegarten Zustand. Das Feld wird in der Kurzfassung als Zeile **Kalorien:** ~45 kcal/100 g (gegarter Zustand). angezeigt. In der Kategorie Low Cal muss der Wert zusätzlich den Richtwert der Kategorie (≤ 100 kcal/100 g) einhalten – siehe docs/kategorien/low-cal.md.

Pflichtabschnitte im Markdown

  1. Kurzfassung – 2–3 Sätze, was das Rezept ist.
  2. Nährwerte – Tabelle pro 100 g im gegarten Zustand (Kalorien, Eiweiß, Fett, Kohlenhydrate, davon Zucker, Ballaststoffe, Salz). Alle Werte in kcal bzw. g bzw. mg angeben. Das Kapitel steht direkt nach der Kurzfassung.
  3. Zutaten – Checkliste (- [ ] optional, aber konsistent).
  4. Zubereitung – nummerierte Schritte, ein Punkt pro Aktion.
  5. Varianten / Tipps – optionale Abweichungen, Ersatz, Lagerung.
  6. Agentur-Historie (optional, empfohlen): wer wann was verändert hat (z. B. „2026-10-28, Agent X: Schrittzahl 4.2 korrigiert“).

Stilregeln

  • Im Präsens/Imperativ schreiben („Nudeln kochen…“ statt „Ich koche Nudeln“).
  • Mengenangaben metrisch (g, ml), portionsbezogen (je Portion bzw. Gesamtmenge klar benennen).
  • Verbotene Zutaten (verbindlich): Wacholderbeeren und Koriander (frische Blätter, getrocknet oder als Samen) dürfen in keinem Rezept verwendet werden – weder in Zutaten noch in Varianten-/Tipps-Abschnitten. Wird in einer historischen Vorlage darauf zurückgegriffen, muss ein Ersatz genannt werden (z. B. Wacholder → schwarzer Pfeffer; Koriander → Petersilie oder Frühlingszwiebel).
  • Lautschrift für alle nicht deutschen Gerichtsnamen: Bei jedem Gerichtsnamen, der nicht auf Deutsch geprägt ist (Französisch, Italienisch, Spanisch, Englisch, …), wird in der Kurzfassung die Aussprache als eigene Zeile ergänzt – z. B. bei Coq au Vin (*kɔk o vin*), Bœuf Bourguignon (*bœf buʁ.si.ˈɡnɔ̃*), Hollandaise (*ɔ.la.dɛz*) oder englischen/italienischen Namen. Die Aussprache folgt dem Aussprache-Modell der jeweiligen Herkunftssprache (z. B. Französisch: nasale Vokale, abgekürzte Endungen, Schwa-Verlust). Reine deutschen Namen (z. B. Kasseler, Bratkartoffel) benötigen keine Lautschrift. Die Zeile steht im Kurzfassungs-Abschnitt als **Aussprache:** *…* – nicht im Frontmatter-title, nicht in nav:, nicht in Kategorie-Tabellen. Sie ist eine Aussprachehilfe für nachkochende Menschen, kein „Übersetzungs-Label“.
  • Keine Emojis im Textkörper; Markdown-Überschriften verwenden (## Zutaten, ## Zubereitung).
  • Maschinell prüfbar: python -m mkdocs build darf keine neuen Warnungen mehr (Unreferenced files etc.) erzeugen.

Workflow für Agenten

  1. Vor jedem Rezept: Vorhandene Rezepte skannen, doppelte Themen (doppelte Rezepte vermeiden), Kategorieschema respektieren.
  2. Nach dem Verfassen: Frontmatter vollständig, Pflichtabschnitte vorhanden, mkdocs build läuft ohne neue Warnungen.
  3. nav: aktualisieren (falls nicht automatisch ergänzt): neues Eintrag mit korrektem Pfad/Name.
  4. Self-Review: mindestens ein Agent-Prüfstich (Quellen-Erreichbarkeit, Plausibilität der Mengenangaben) vor Merge/Commit.
  5. Keine „stillen“ Änderungen: aktualisiert-Datum und ggf. Agent-Historie-Block bei jeder Bearbeitung berühren.
  6. Build-Gate (verbindlich): Nach jeder Änderung im Repository – sei es ein Rezept, eine Kategorieseite, mkdocs.yml oder AGENTS.md selbst – muss der Build fehlerfrei laufen (Exit-Code 0, keine WARNING-/ERROR-Zeilen). Der Build wird über python3 scripts/mkdocs_build_local.py --strict ausgeführt, der zusätzlich den Nährwert-Plausibilitäts-Check (Punkt 8) vor dem MkDocs-Build ausführt. Änderungen, die den Build brechen oder neue Warnungen erzeugen, sind nicht akzeptiert: zuerst die Ursache beheben, erst dann die Änderung fertigstellen. Der Build-Check ist der Abschluss eines jeden Arbeitspakets, bevor es gemeldet oder übergeben wird.
  7. Regeln-Publikation (automatisch): Die veröffentlichten Regeln auf der Website (docs/regeln.md) werden bei jedem Build automatisch aus AGENTS.md generiert (scripts/generate_regeln.py). Vor jedem Build läuft python3 scripts/generate_regeln.py (bzw. der Hook scripts/build_hook.py), damit docs/regeln.md immer mit AGENTS.md im Einklang ist. Nach einer Änderung an AGENTS.md den Generator erneut ausführen und den Build verifizieren.
  8. Nährwert-Plausibilität (verbindlich): Vor jedem Build läuft python3 scripts/check_naehrwerte.py, der alle Nährwerttabellen gegenrechnet. Der Hook prüft:
  9. Kalorien in der Tabelle vs. kcal_pro_100g im Frontmatter (± 5 %).
  10. Kalorien in der Tabelle vs. Makro-Rechnung mit Atwater-Faktoren (Eiweiß 4, Fett 9, KH 4 kcal/g) (± 15 %).
  11. Plausibilität der einzelnen Werte (Eiweiß ≤ 50 g, Fett ≤ 50 g, KH ≤ 80 g, Kalorien ≤ 600 kcal pro 100 g). Bei Abweichung wird ein ERROR gemeldet und der Build abgebrochen (Exit-Code 1).

Anti-Pattern

  • Rezepte direkt unter docs/ (statt docs/rezepte/) –durchbrechen der Struktur vermeiden.
  • Kategorie „Hausgemacht“ statt konkreter Kategorie-Werte.
  • ## Zutaten als Checkliste mit ungeklärten Mengenangaben (z. B. „eine Handvoll Knoblauch“ → „3 Zehen, ca. 15 g“).
  • mkdocs.yml ohne nav: für eine wachsende Rezeptmenge –wird unübersichtlich.
  • Keine Quellenangabe bei fremden Rezepten.
  • Rezepte, die auf moderne „blogger“-Variationen (Foodblog, Instagram, TikTok) verweisen, ohne ein historisches Original (Grandes Mères, Escoffier, Carême) zu haben – verletzen §2 „Bevorzugung historischer und kultureller Originalrezepte“.
  • Rezepte, die ein regionales Original „modernisieren“ (z. B. Kasseler mit Paprikahuhn statt Sauerkraut, Confit de canard mit Sushi-Soße statt Beiges), ohne das kulturelle Original in der Quelle im Frontmatter zu verweisen – verletzen §2 „Bevorzugung historischer und kultureller Originalrezepte“.