Ein Ernährungs-Coach für die Hosentasche. Verhindert schlechte Entscheidungen im Moment — statt Gewohnheiten zu überwachen. A nutrition coach for your pocket. Prevents poor decisions in the moment — instead of monitoring habits.
Was die App ist — und vor allem, was sie nicht ist. What the app is — and more importantly, what it is not.
Pocket Pascal ist eine Entscheidungshilfe für den Moment: „Es ist 16 Uhr, ich habe Hunger, was jetzt?" Die App beantwortet das in wenigen Taps, gestützt auf Pascals Ernährungsbaukasten und den vorhandenen Vorrat. Pocket Pascal is a decision aid for the moment: "It's 4pm, I'm hungry, what now?" The app answers that in a few taps, based on Pascal's building-block system and what's actually in the kitchen.
Das Erfolgskriterium ist ungewöhnlich: Die App soll sich überflüssig machen. Wenn die Daumenregeln verinnerlicht sind, wird sie seltener gebraucht. Das ist gewollt, kein Fehler. The success criterion is unusual: the app should make itself obsolete. Once the rules of thumb are internalised, it gets used less. That's intended, not a flaw.
Zwei Personen, zwei sehr unterschiedliche Einstiegspunkte in dieselbe Logik. Two people, two very different entry points into the same logic.
| NutzerUser | HauptbedürfnisPrimary need | Bedient durchServed by |
|---|---|---|
| Steffi | Repertoire erweitern. Weiß bei manchen Zutaten nicht, was sie damit anfangen soll (z. B. Proteinpulver). Will Neues ausprobieren und eine mentale Rezeptbibliothek aufbauen.Broaden her repertoire. Doesn't know what to do with certain ingredients (e.g. protein powder). Wants to try new things and build a mental recipe library. | Rezeptbibliothek, VorschlagsmaschineRecipe library, suggestion engine |
| David | Einkaufen mit richtiger Kategorie-Balance. Braucht (a) ein Gefühl für Lebensmittelkategorien im Laden und (b) Ideen für das, was schon zu Hause ist.Shopping with the right category balance. Needs (a) an intuitive sense for food categories while shopping and (b) ideas for what's already at home. | Einkaufshilfe, Knowledge Base, KühlschrankShopping aid, knowledge base, fridge |
Beide Bedürfnisse laufen auf dieselbe Datenschicht hinaus: Lebensmittel mit Kategorie, Rezepte als Kombinationen daraus. Der Unterschied liegt nur in der Richtung der Abfrage — „was koche ich aus X?" gegen „was muss ich für die Woche kaufen?". Both needs resolve to the same data layer: foods with a category, recipes as combinations of them. The only difference is the direction of the query — "what do I cook from X?" versus "what do I need to buy for the week?".
Der inhaltliche Kern. Stammt aus Pascals Ernährungsbaukasten und Einkaufsguide. The substantive core. Sourced from Pascal's building-block system and shopping guide.
4 Mahlzeiten, ca. alle 3–4 Std. Morgens Protein + Obst · mittags ganzer Teller · nachmittags Proteinsnack + Obst/Gemüse · abends ganzer Teller. 2 L Wasser täglich. 4 meals, roughly every 3–4 hours. Morning protein + fruit · midday full plate · afternoon protein snack + fruit/veg · evening full plate. 2 L water daily.
Diese Struktur ist zugleich die Vorschlagslogik: Aus der Uhrzeit folgt der Mahlzeitentyp, aus dem Typ folgt die Zusammensetzung. Kein Rätselraten nötig. This structure doubles as the suggestion logic: time of day determines the meal type, meal type determines the composition. No guesswork needed.
Pro Einkauf mindestens 5 Proteinquellen, 5 Obst-/Gemüsesorten, 4 Fettquellen, 4 Kohlenhydratquellen. Bedarf = Tage bis zum nächsten Einkauf × Mahlzeiten pro Tag. Diese Formel ist direkt rechenbar und wird zur Einkaufshilfe. Per shopping trip: at least 5 protein sources, 5 fruit/veg varieties, 4 fat sources, 4 carb sources. Demand = days until next trip × meals per day. This formula is directly computable and becomes the shopping aid.
Sieben Bausteine, nach Phase sortiert. Jeder für sich nutzbar. Seven building blocks, sorted by phase. Each usable on its own.
Teller-Regel und Vorratskammer als Nachschlagewerk: Kategorien aufklappbar, Suche, Punkte-Markierung (empfehlenswert / bewusst genießen), Daumenregeln pro Kategorie. Das Fundament, auf das alle anderen Module zugreifen. Muss auf das strukturierte Datenmodell umgestellt werden.Plate rule and pantry as a reference: collapsible categories, search, dot markers (recommended / enjoy mindfully), rules of thumb per category. The foundation all other modules read from. Needs migrating to the structured data model.
Kuratierte Sammlung von Mahlzeiten als Kombinationen aus Baukasten-Zutaten. Jedes Rezept kennt seine Zutaten-IDs, den Mahlzeitentyp und die Tageszeit. Startbestand: die 13 Beispielmahlzeiten aus der Ernährungscheckliste, danach schrittweise erweitert. Ohne diese Schicht kann die Vorschlagsmaschine nur die Tellerverteilung wiederholen.A curated collection of meals as combinations of building-block ingredients. Each recipe knows its ingredient IDs, meal type and time of day. Seed: the 13 example meals from the nutrition checklist, expanded gradually. Without this layer the suggestion engine can only repeat the plate ratio.
„Was esse ich jetzt?" Ein Tap. Uhrzeit bestimmt den Vorschlag (halbe oder ganze Mahlzeit), manuelle Umschaltung bleibt möglich. Zieht passende Rezepte aus der Bibliothek. Rein regelbasiert, keine KI nötig. Später filterbar nach Kühlschrankinhalt."What do I eat now?" One tap. Time of day drives the suggestion (half or full meal), with manual override. Pulls matching recipes from the library. Purely rule-based, no AI needed. Later filterable by fridge contents.
Pro Kategorie (Protein, Fett, Kohlenhydrat, Obst/Gemüse) beliebig viele Lebensmittel als Chips antippen — die App bewertet die Kombination gegen die Baukasten-Regeln und die Pick/Caution-Markierungen: guter Teller, guter Snack, oder was fehlt. Kein Backend nötig, reine Client-Logik auf dem bestehenden Datenmodell. Übersetzt die Vorratskammer direkt in gefühltes Wissen — trifft die Vision „App macht sich überflüssig" am direktesten.Tap any number of foods per category (protein, fat, carb, veg/fruit) as chips — the app evaluates the combination against the building-block rules and the pick/caution tags: good plate, good snack, or what's missing. No backend needed, pure client-side logic on the existing data model. Translates the pantry straight into felt intuition — hits the "app makes itself obsolete" vision most directly.
Baut auf dem Teller-Builder auf, sobald Mengen dazukommen. Vier Parameter: Kalorien (Summe aus Mengen × Nährwert), Makros (Protein/Fett/KH gegen Baukasten-Zielwerte), Vielfalt (abgedeckte Vitamine/Mineralien je Teller, später auch über die Woche), Zucker (Tagesbudget-Regel aus dem Zucker-Guide). Mengen bekommen einen Vorschlagswert aus den Baukasten-Standardmengen (30 g Protein, 15 g Fett, 75 g KH, 100 g Obst/200 g Gemüse), editierbar. Ausgewählte Kombination als Favorit speichern — landet direkt in der Rezeptbibliothek, keine zweite Datenstruktur nötig. Voraussetzung: alle Lebensmittel auf eine einheitliche Basis (pro 100 g) normalisieren — aktuell sind Snacks pro Portion, der Rest pro 100 g angegeben.Builds on the plate builder once quantities are added. Four parameters: calories (sum of quantity × nutrition value), macros (protein/fat/carbs against building-block targets), variety (vitamins/minerals covered per plate, later across the week too), sugar (daily-budget rule from the sugar guide). Quantities get a suggested value from the building-block defaults (30 g protein, 15 g fat, 75 g carbs, 100 g fruit/200 g veg), editable. Save a combination as a favourite — it lands straight in the recipe library, no second data structure needed. Prerequisite: normalise all foods onto one basis (per 100 g) — currently snacks are per serving, everything else per 100 g.
Sprachumschaltung DE/EN, gespeichert. Später: Mahlzeiten pro Tag, Einkaufsrhythmus, Kalorienrichtwert für das Zuckerbudget.Language switch DE/EN, persisted. Later: meals per day, shopping rhythm, calorie reference for the sugar budget.
Rechnet aus Einkaufsrhythmus und Mahlzeitenzahl den Bedarf je Kategorie und schlägt eine ausgewogene Liste vor. Abhakbar im Laden. Bedient primär David.Calculates per-category demand from shopping rhythm and meal count, then proposes a balanced list. Checkable in the shop. Primarily serves David.
Erfasst, was da ist; bucht Zutaten ab, wenn gekocht wurde. Ermöglicht „was kann ich jetzt kochen?" und hilft, angebrochene Packungen über mehrere Tage aufzubrauchen (z. B. eine Dose Bohnen). Braucht Persistenz — technisch die erste echte Hürde. Später: speist die Chip-Auswahl im Teller-Builder direkt aus dem Bestand statt aus der ganzen Vorratskammer — dieselbe Bewertungslogik, andere Datenquelle.Records what's available; deducts ingredients once a meal is cooked. Enables "what can I make right now?" and helps use up opened items across several days (e.g. a can of beans). Requires persistence — the first real technical hurdle. Later: feeds the plate builder's chip choices straight from stock instead of the whole pantry — same scoring logic, different data source.
Merkliste für Dinge, die in die Vorratskammer sollen, aber gerade fehlen — Bindeglied zwischen Kühlschrank und Einkaufsliste. Ohne eigene Logik: Einträge landen automatisch auf der nächsten Einkaufsliste.A running list of things that should be in the pantry but currently aren't — the link between the fridge and the shopping list. No logic of its own: entries land on the next shopping list automatically.
Kühlschrank-Manager und Wochenplaner mit natürlicher Sprache („hab noch Spinat und Feta, was geht?"). Die einzige Stelle, an der Chat sinnvoll ist — weil die Eingabe zu vielfältig für Buttons wird. Braucht Backend.Fridge manager and weekly planner with natural language ("got spinach and feta left, what works?"). The only place chat makes sense — because input becomes too varied for buttons. Requires a backend.
Aus dem FigJam-Board: Die Module sind kein loses Set, sie bilden einen geschlossenen Kreislauf. Jeder Schritt füttert den nächsten, der letzte Schritt füttert wieder den ersten. From the FigJam board: the modules aren't a loose set — they form a closed loop. Each step feeds the next, and the last step feeds back into the first.
Entscheidungen, die jetzt getroffen werden müssen, weil sie später teuer sind. Decisions that must be made now because they get expensive later.
Der aktuelle Prototyp speichert fertige Anzeigetexte. Das blockiert sowohl Zweisprachigkeit als auch jede Rechenfunktion. Neue Form: The current prototype stores ready-made display text. That blocks both bilingualism and any computation. New shape:
// Lebensmittel / food item
{ id: 'chicken_breast',
cat: 'protein',
name: { de: 'Hühnerbrust', en: 'Chicken breast' },
kcal: 111,
protein: 24,
tag: 'pick' } // 'pick' | 'caution' | null
// Rezept / recipe
{ id: 'eggs_cottage_cucumber',
name: { de: '3 Eier + Hüttenkäse + Gurke', en: '3 eggs + cottage cheese + cucumber' },
type: 'full', // 'full' | 'half'
times: ['midday','evening'],
uses: ['egg','cottage_cheese','cucumber','lentil_waffle'] }
Damit wird alles möglich: Übersetzen (name[lang]), Rechnen (Einkaufsmengen), Filtern (welches Rezept passt zum Vorrat), Verknüpfen (Rezept ↔ Zutat ↔ Kategorie).
This unlocks everything: translation (name[lang]), computation (shopping quantities), filtering (which recipe fits the stock), linking (recipe ↔ ingredient ↔ category).
Ziel ist der spätere Umzug auf echtes Hosting. Damit das kein Neubau wird, gilt ab sofort: Daten, Logik und Darstellung strikt getrennt. Die Datenschicht bleibt reines JavaScript ohne DOM-Bezug — sie lässt sich unverändert in ein Repo übernehmen. Keine Abhängigkeit von Artifact-spezifischen APIs im Kern. The goal is an eventual move to real hosting. To keep that from becoming a rebuild, from now on: strictly separate data, logic and presentation. The data layer stays plain JavaScript with no DOM references — it can move into a repo untouched. No dependency on Artifact-specific APIs in the core.
| FähigkeitCapability | Artifact | Eigenes HostingOwn hosting |
|---|---|---|
| Nachschlagen, Rechnen, VorschlägeReference, computation, suggestions | ✓ | ✓ |
| Home-Bildschirm-IconHome screen icon | über Safari „Teilen"via Safari "Share" | ✓ |
| Zustand speichern (Kühlschrank, Sprache)Persisted state (fridge, language) | ungeprüftunverified | ✓ |
| Offline-NutzungOffline use | — | ✓ |
| Konversationelle ModuleConversational modules | — | ✓ |
| Sync zwischen zwei NutzernSync between two users | — | ✓ |
DE ist die primäre Arbeitssprache, EN die allgemeine Vorlage. Umsetzung nicht mehr über doppelte HTML-Blöcke wie bisher, sondern über ein t()-Lookup gegen das Datenmodell — sonst wächst jede Seite doppelt. UI-Texte kommen in ein eigenes Wörterbuch.
DE is the primary working language, EN the general template. No longer implemented via duplicated HTML blocks, but through a t() lookup against the data model — otherwise every page doubles in size. UI strings move into their own dictionary.
Phase 1 muss allein stehen können. Erst wenn sie im Alltag benutzt wird, kommt Phase 2. Phase 1 has to stand on its own. Phase 2 only follows once Phase 1 is actually used day to day.
de/enData model refactor: display strings → structured records with IDs and de/enlocalStorage im Artifact prüfenSettings page with language switch; verify localStorage inside the ArtifactZu klären, bevor die jeweilige Phase startet. To be resolved before the respective phase starts.
localStorage im Artifact-iframe zuverlässig? Im normalen Browser bestätigt (Sprache übersteht Reload), im claude.ai-iframe selbst noch nicht getestet. App zeigt in den Settings ehrlich an, ob's geklappt hat.
Does localStorage persist reliably inside the Artifact iframe? Confirmed in a normal browser (language survives reload), not yet verified inside the claude.ai iframe itself. The app's settings screen honestly reports whether it worked.
Steffi · auf dem iPhone prüfenSteffi · verify on iPhone
Getroffene Festlegungen, damit sie nicht neu verhandelt werden. Settled decisions, so they don't get re-litigated.
| DatumDate | EntscheidungDecision | BegründungRationale |
|---|---|---|
| 2026-08-03 | Alle Artefakte zweisprachig, DE primärAll artefacts bilingual, DE primary | DE zum eigenen Anpassen, EN als allgemeine VorlageDE for personal editing, EN as the general template |
| 2026-08-03 | Buttons statt Chat als StandardButtons over chat by default | Offene Konversation kostet im Hunger-Moment zu viel ZeitOpen conversation costs too much time in a moment of hunger |
| 2026-08-03 | Später eigenes Hosting, portable Architektur ab jetztOwn hosting later, portable architecture from now | Kühlschrank und AI-Module sind im Artifact nicht umsetzbarFridge and AI modules aren't feasible inside an Artifact |
| 2026-08-03 | Datenmodell strukturiert statt Anzeige-StringsStructured data model instead of display strings | Voraussetzung für Übersetzung, Rechnen und FilternPrerequisite for translation, computation and filtering |
| 2026-08-03 | App nur hell, Dokumente hell/dunkelApp light only, documents light/dark | Küchennutzung bei Tageslicht, Druckvorlagen brauchen WeißKitchen use in daylight, print masters need white |
| 2026-08-03 | Phase 1 = Knowledge Base + Rezeptbibliothek + VorschlagPhase 1 = knowledge base + recipe library + suggestion | Bedient Steffis Kernbedürfnis, ohne Persistenz auszukommenServes Steffi's core need without requiring persistence |
| 2026-08-03 | Testen/Aktualisieren: Artifact-Link direkt auf dem iPhone öffnen, kein Neu-Hinzufügen zum Home-Bildschirm nötigTesting/updating: open the Artifact link directly on the iPhone, no need to re-add to the home screen | Ohne Service Worker cacht iOS nichts offline — jeder Aufruf lädt die zuletzt veröffentlichte Version live nach; das Home-Bildschirm-Icon zeigt also automatisch den neuesten StandWithout a service worker, iOS caches nothing offline — every open fetches the latest published version live, so the home-screen icon automatically shows the newest state |
| 2026-08-03 | Web/PWA statt native iOS-App (kein Swift/Cursor)Web/PWA instead of a native iOS app (no Swift/Cursor) | Nur 2 Nutzer (Steffi + David); bestehendes Datenmodell/Logik direkt weiterverwendbar statt Neustart der Codebasis; kein App-Store-Aufwand nötigOnly 2 users (Steffi + David); existing data model/logic carries over directly instead of a codebase restart; no App Store overhead needed |