Silverscale – Tagesreport 05.06.2026 (Endstand 23:59)
Ein Tag, ein Bogen: von „Grocy aufsetzen und Lidl anbinden" (Cowork-Handoff) bis zur eigenen Familien-App mit HelloFresh-Integration und AI-Assistenz. Dieser Report ist der konsolidierte Einstieg; Details in den verlinkten Docs.
1. Was heute entstanden ist
| Baustein | Status | Doku |
|---|---|---|
| Grocy (Docker, API-Key, Makro-Userfields, Journal-Fix) | ✅ läuft, :9283 (WG) |
RUNBOOK.md, HANDOFF |
| Lidl-Pipeline (OAuth, HTML-Parser, 467 Bons centgenau) | ✅ Cron 07:30 | lidl-grocy/HANDOFF.md §5 |
| EAN-Recherche („App-API liefert EAN" → tot seit Q3/24) | ✅ belegt | lidl-grocy/RECHERCHE-EAN.md |
| Makro-Anreicherung (OFF-Lidl-Filter, Fuzzy, Frischware-Tabelle, Top-10 manuell) | ✅ 61 % Food / 78 % kaufgewichtet | HANDOFF §8 |
| Artikel-Mapping-Backup (artId→EAN/Makros/OFF-Links) | ✅ 1020 Artikel | lidl-grocy/lidl-artikel-mapping.json |
| Silverscale Family Hub v1.0–v1.6 | ✅ live http://192.168.3.8:9300 |
app/ARCHITEKTUR.md (ADRs!) |
| HelloFresh-Integration (19 Gerichte, W20–23) | ✅ Cron 08:10 | ARCHITEKTUR ADR-11/12 |
AI-Assistenz (headless claude -p, 6 Job-Arten) |
✅ Cron minütlich | ARCHITEKTUR ADR-13 |
2. Silverscale-Funktionsumfang (Endstand)
- Heute/Tagebuch: Budget-Ring (Basis + Aktivitäten − gegessen), Makro-Balken, Mahlzeiten-Sektionen, Einträge nachträglich editierbar (Gramm/Portionen, Snapshots werden serverseitig neu berechnet), Foto-Schnelleintrag per Claude.
- Gerichte: Zutaten aus dem Katalog (Gramm⇄Portionen-Picker mit Brüchen), Foto per Kamera, Schritt-Sektionen mit Bildern, Haiku-Naming, AI-Anleitung, Koch-Ideen-Chat aus dem Vorrat (3 Vorschläge mit Makros/Aufwand, übernehmbar).
- Wochenplan: HF-Box je KW (1×-Zuweisungsschutz), Tag+Mahlzeit+Portionen, Plan- vs. Gegessen-Summen je Tag, „essen" loggt + markiert ✓, HF-Chips überall.
- Stammdaten: Artikel-Ansicht mit Filtern (Zeitraum, „EAN fehlt"), Detail mit Kaufstatistik/Preisverlauf (30T/6M/1J/Alles)/OFF-Links/Nutri-Score-Chip (A–E in Label-Farben), EAN scannen/eintippen (OFF-Auto-Fill), Artikel-Neuanlage per EAN (Lidl-unabhängig), 🚩-Flag → nächtliche Claude-Recherche, Favoriten ★, Gruppenverwaltung mit Sortierung, Portionsgrößen (OFF + AI-Schätzung).
- Einkäufe/Vorräte: komplettes Bon-Archiv mit Rabatten + „EAN fehlt"-Filter, Vorrat mit Makros + Journal, verbrauchen→loggen.
- Statistik: Ausgaben/Monat (Ø 493 €), kcal-Trend vs. Budget, Top-Produkte mit Preis-Drilldown, 🤖 Insights-Report.
- AI-Infrastruktur: generische Job-Queue (
ai_jobs) + Host-Worker (app/ai_jobs.py, minütlich); ai-resolve für geflaggte Artikel (Button + nächtlich 22:00); globales UI-Feedback (Sonar-Pill, Spinner-Cursor, Toasts).
3. HelloFresh – wie es funktioniert
Zweistufig (app/backend/hellofresh.py): Lieferwochen über die interne
/gw/-API mit dem kurzlebigen JWT (~30 min; Einstellungen → Token-Feld, Status
zeigt Restlaufzeit; Antwort wird gecacht) — Rezept-Inhalte (Zutaten je
Portionszahl, Schritte mit Bildern, Nährwerte) tokenlos von den öffentlichen
Rezeptseiten (__NEXT_DATA__). Bilder: media.hellofresh.com/…/hellofresh_s3{path}.
Nährwerte liegen als Gesamt-Werte am Gericht → unportionierte Extras werden
über die Portionszahl korrigiert. Sync: Button + täglich 08:10, cache-first.
4. Vorfall des Tages (Lehre!)
Beim HF-Ausbau liefen kurzzeitig zwei Claude-Sessions parallel im Repo → doppelte Endpoints, konkurrierende Schema-Designs, Phantom-Spalten. Aufgelöst durch Merge (Best-of beider Stände). Regel ab jetzt: nur EINE schreibende Session. (Steht auch in der CLAUDE.md.)
5. Betrieb (Cron-Übersicht)
| Zeit | Job |
|---|---|
| 07:30 | Lidl→Grocy (sync.py import --all) |
| 07:45 | Lidl→Silverscale (importer.py --pull) |
| 08:10 | HelloFresh-Sync (API-Trigger) |
| 22:00 | ai-resolve (geflaggte Artikel) |
| minütlich | ai-resolve-Trigger, dish-ai (Haiku-Naming), ai-jobs (Worker) |
| 03:30 | DB-Backup app/data/backups/silverscale-<Wochentag>.db (7-Tage-Rotation) |
6. Nächste Schritte (Vorschlag für morgen, priorisiert)
- HTTPS via Caddy + interne CA → schaltet frei: „App auf den Homescreen" (echtes App-Gefühl!), Kamera-Barcode-Scanner, evtl. Web-Push. Größter Einzel-Hebel für den Alltag.
- 💶 Nachkoch-Preisvergleich (Eye-Opener): HF-Gericht vs. Lidl-Preise aus eurer Historie („nachgekocht 4,80 € statt ~11 €/Portion").
- 🧺 Einkaufsliste aus dem Wochenplan (geplante Gerichte − Vorrat, sortiert nach Gruppen-Reihenfolge).
- 🤖 Woche füllen: Claude verteilt HF-Box + eigene Gerichte budget-bewusst.
- Kleinkram: „Frau Fisch" umbenennen (sonst grüßt die App „Moin, Frau!"), Grocy-admin-Passwort, HF-Token-Refresh-Recherche (Auth0-Refresh-Token aus dem Browser könnte die 30-min-Tortur beenden).
7. Wife-Acceptance-Factor – Ideen
Reibung raus: - Homescreen-Install + App-Icon (braucht #1 HTTPS) – „echte App statt Browser" - 1-Tap-Wiederholung: „Gestern gegessen" als Vorschlagsliste beim Loggen (Frühstück ist bei den meisten 80 % identisch) - Meal-Defaults pro Person (ihr Müsli morgens vorausgewählt) - Barcode-Scan beim Loggen (nach HTTPS) – Packung scannen statt suchen
Freude rein: - Wochen-Rückblick als freundliche Karte („Diese Woche 4× selbst gekocht 💪") – kein Kalorien-Pranger, positiver Ton - Streaks/sanfte Erfolge statt roter Zahlen; „drüber"-Tage neutral behandeln - Foto-Logging prominenter (sie fotografiert → Claude macht den Rest) - Gemeinsames Abendessen: ein Eintrag → bei beiden geloggt („Wir-Modus") - Eigener Avatar/Farbe schon da – evtl. eigene Begrüßungs-Sprüche
Vertrauen: - „Warum diese Zahl?"-Transparenz (Quelle am Eintrag: OFF/HF/Claude-Schätzung) - Claude-Schätzungen als solche markiert (📷-Präfix existiert) + 1-Tap-Korrektur
8. Technische Verbesserungen (Backlog)
- Smoke-Test-Skript (API-Durchstich nach jedem Deploy statt Hand-curls)
- requirements pinnen; Log-Rotation für ai-*.log; Healthcheck-Cron mit Push bei Container-Down
hf_extra-Erkennung verfeinern, sobald erste echte Extras in einer Box sind- Grocy-Abschaltung erwägen, wenn Silverscale 2–3 Wochen gut läuft (Mapping-Backup existiert; Preishistorie ist ohnehin in Silverscale)
9. Commit-Trail (Auszug)
b9b5d23 Init → 99a495f HTML-Parser → 11f2169 Vollimport Grocy →
d033da7 OFF-Vorfilter → 591b984 Frischware-Tabelle → 3972d55 Mapping →
370f74d Silverscale → 16aee15 Stammdaten → f9825e6 Headless-AI →
b9d81be Nutri-Score → 8991971 Gerichte+Plan → 3a8484c editierbare Mengen →
e62ac29 HelloFresh + AI-Paket