Files
pocket-pascal/handover/CLAUDE.md
Steffi Müller a482bf5b09 Add Phase 1 Pocket Pascal UI: home, pantry, week plan, and plate.
Replace the hello-world shell with the elevated design system, bilingual screens, recipe/extras data, and the interactive Mein Teller view.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 12:22:32 +02:00

2.7 KiB

Pocket Pascal

Nutrition coach app for Steffi + David, built on Pascal Wirth's Ernährungsbaukasten (building-block nutrition system). Decision aid for "what do I eat right now" — not a tracker, not chat-first. See /docs/CONCEPT.md for the full spec.

Before touching this repo

Read /docs/CONCEPT.md in full. It is the source of truth for:

  • Vision, non-goals, and the "app should make itself obsolete" success criterion
  • The plate/building-block rules (protein, fat, carbs, veg/fruit) and portion sizes
  • The module list and which phase each belongs to
  • The decision log (section 8) — settled calls, do not re-litigate without a documented reason
  • Open questions (section 7) — several are marked as UX calls Steffi owns; don't decide those unilaterally

Platform

Web/PWA. Not a native iOS app. Decided 2026-08-03 (see decision log) — only 2 users, no App Store needed, and the existing vanilla JS data model/logic carries over directly.

Target stack: React + shadcn/ui + Tailwind, hosted on Vercel or GitHub Pages (exact host still an open question — see concept doc §7).

Data model

/data/foods.json and /data/steps.json are extracted from the working prototype. Structured records, not display strings:

{ "id": "chicken_breast", "cat": "protein",
  "name": { "de": "Hühnerbrust", "en": "Chicken breast" },
  "v": { "de": "111 kcal · 24 g", "en": "111 kcal · 24 g" },
  "f": "pick" }

f is "pick" (especially recommended), "caution" (enjoy mindfully), or absent. v is currently a display string per item — not yet normalized to a common basis. Pantry items are mostly per-100g; snack items are per-serving. Normalizing everything to per-100g is a prerequisite before quantities/calorie math can be added (see concept doc, Teller-Builder — Analyse-Layer module).

DE is the primary working language (Steffi edits it directly), EN is the general template — every user-facing string needs both. UI chrome strings (not food data) live in a separate dictionary, not duplicated HTML.

What's already built (reference only — not authoritative, rebuild in the new stack)

/reference/kueche_app.html — working single-file prototype (Claude Artifact). Has: plate rule view, pantry/knowledge base with search, Teller-Builder (multi-select plate builder with pick/caution scoring), settings with language switch. Useful for behavior reference, not for copy-pasting into the new stack as-is.

Working conventions

  • Bilingual: every content change ships both de and en in the same commit.
  • Curated, not exhaustive — see non-goals in the concept doc. Don't add a food-database API integration without checking §7 first.
  • UX/UI decisions are Steffi's call (she's the UX designer on this project). Flag them, don't just decide.