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

44 lines
2.7 KiB
Markdown

# 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:
```json
{ "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.