Changelog
Every change to Caluru, newest first, written so anyone can understand it. Claude adds an entry each time a change is saved (save-and-ship).
2026-11-06
- La app, llevada al 10/10 en el diseño. Onboarding más corto (unos 22 pasos: fuera las pantallas 5, 10, 12, 24 y 26, con su contenido pasado a otras); medir cada paso del embudo; tres nombres para los gustos en toda la app (Me gusta, No quiero, Alergias) y un solo sitio en Perfil, “Tus gustos”; racha que perdona con un día libre por semana; plan día a día para la primera semana; Progreso que empieza por los días en objetivo y la proteína, con el peso en segundo lugar y pesaje opcional; Recetas con Todas como pantalla principal y Personalizar como tarjeta; paywall de invitados alineado con el modo miembro gratis; línea legal sobre la IA; y 33 pantallas más pasadas al estilo editorial (Hoy, recorrido, Progreso, Peso, Logros, Perfil, asistente, receta, modo cocina, cámara, avisos, widgets, paywalls y más). (Technical:
docs/diseno-2.0/src/*.png, make_pdfs.py, ojo.json, que_se_ve.json, docs/DECISIONS.md)
- Grupos, rehecho y muy sencillo. Cuatro pantallas con el diseño de Hoy: tus grupos, un grupo de amigos (rachas, quién va primero y las fotos de lo que comió cada uno), la familia (la cena de hoy con la porción de cada uno y la lista compartida) e invitar. Se quitaron ranking, retos y pantallas extra. La tarjeta “Compartir mi semana” ahora es un póster elegante. (Technical:
docs/diseno-2.0/src/G72_grupos.png, G73_grupo_amigos.png, G74_grupo_familia.png, G75_invitar.png, L08_compartir.png, make_pdfs.py, ojo.json, que_se_ve.json, docs/DECISIONS.md)
- Los símbolos de los PDF ya se ven bien. Las flechas, el corazón, la X y los checks (→ ♡ ✕ ✓) salían como cuadrados negros en los PDF; ahora usan una letra que los tiene. (Technical:
docs/diseno-2.0/src/fonts_caluru.py, make_pdfs.py, make_alex.py, make_integraciones.py)
- Botones “♡” y “✕” en Recetas para revisar y revertir. En la cabecera de Recetas, “♡” abre “Lo que te gusta” y “✕” abre “Lo que no quieres”, cada una con Recetas e Ingredientes; desde “Lo que no quieres” se devuelve cualquier cosa con “Volver a mostrar”. (Technical:
docs/diseno-2.0/src/L65_favoritas.png, L66_no_gustan.png, cabeceras de L63* y L64*, make_pdfs.py, ojo.json, docs/DECISIONS.md)
- Recetas › Todas también con Ingredientes y Recetas. Se puede elegir directamente sin swipe y corregir lo que se marcó mal: cada ingrediente tiene corazón y X, y en recetas el filtro “No me gustan” deja recuperar las descartadas. (Technical:
docs/diseno-2.0/src/L64_todas.png, L64b_todas_ingredientes.png, make_pdfs.py, ojo.json, docs/DECISIONS.md)
- Recetas: “Descubrir” pasa a ser “Personalizar”, con swipe de ingredientes. En la pestaña Recetas, Personalizar tiene dos modos con el diseño del swipe del onboarding: Ingredientes (tomate, perejil, ajo…: te gusta o no) y Recetas, ya filtradas con lo que no te gusta y con todo lo del onboarding. Las respuestas se guardan en el perfil y hacen el plan más personal. El documento de integraciones añade lo que hace falta para construirlo: fotos de cada ingrediente, la base de datos de cada persona y un asistente que pregunta “¿Hay algo que quieras que haga diferente?” y guarda lo que aprende. (Technical:
docs/diseno-2.0/src/L63_personalizar_ingredientes.png, L63b_personalizar_recetas.png, L92_coach.png, make_integraciones.py, make_pdfs.py, ojo.json, docs/DECISIONS.md)
- Mi semana igual que Hoy y productos tan limpios como la comida. La pestaña Semana usa las mismas tarjetas y letra que Hoy, sin el resto de la semana en filas; cambiar una receta tiene ahora también “Elegir otra receta”; Preferencias del plan pasa a la sección de Perfil. El aviso de semana nueva ya muestra detrás la pestaña Semana nueva, sin “Resto de la semana”. El resultado de un producto escaneado se ve como el de un plato: foto arriba y la Nota Caluru en grande. (Technical:
docs/diseno-2.0/src/L57_mi_semana.png, L59_cambiar_comida.png, L53_producto_malo.png, L14_camara_producto.png, make_pdfs.py, ojo.json, que_se_ve.json, docs/DECISIONS.md)
- Mi semana, rehecha y muy sencilla. Calendario de la semana con hoy marcado, lo que te toca hoy en grande y el resto de la semana en filas; la lista de la compra por pasillo en gramos. Se quitó “Ajustar”. Cualquier receta se puede cambiar, guardándola en favoritas o no volviéndola a mostrar, y al empezar cada semana se sugiere revisarla antes de la compra. (Technical:
docs/diseno-2.0/src/L57_mi_semana.png, L58_nueva_semana.png, L59_cambiar_comida.png, L61_lista_compras.png, make_pdfs.py, ojo.json, que_se_ve.json, docs/DECISIONS.md)
- Logo más elegante dentro de la app. Dentro de la app el logo pasa a ser la misma figura con el brote, plana, en el verde claro del icono y sin cuadrado; el icono del iPhone y de la App Store sigue siendo el original. Cambiado en la bienvenida, el swipe, el resumen del swipe y la Nota Caluru de la cámara; las demás pantallas lo indican en “Ojo, en la app”. (Technical:
docs/diseno-2.0/src/logo_caluru_app_verde_claro.png, imágenes en src/, ojo.json, make_pdfs.py, docs/DECISIONS.md)
- Documento nuevo sobre las integraciones con bases de datos de alimentos.
11_integraciones_alimentos.pdf explica por qué la cámara y el escáner tienen que usar bases de datos reales (tabla de Caluru, USDA FoodData Central, Open Food Facts), cómo se reconoce un plato, cómo se califica un producto y cómo comprobar que las notas son exactas. La pantalla “Código no encontrado” ahora pide la tabla y también la lista de ingredientes. (Technical: docs/diseno-2.0/src/make_integraciones.py, L54_etiqueta.png, make_pdfs.py, ojo.json, que_se_ve.json, docs/DECISIONS.md)
2026-11-05
- “Analizando tu plato” con una raya que sube y baja. Sin nombres ni etiquetas sobre la foto: solo una raya de luz blanca que recorre el plato mientras se analiza, y “Analizando tu plato” con una barra fina abajo. En el resultado, “¿Algo no cuadra?” es ahora un campo para escribir ahí mismo, con el texto de ejemplo medio transparente y “Corrige con IA” encima. (Technical:
docs/diseno-2.0/src/L12_camara_analizando.png, make_pdfs.py, ojo.json, que_se_ve.json, docs/DECISIONS.md)
- La galería de la cámara, marcada como obligatoria. El PDF de la cámara deja claro que el botón de galería tiene que funcionar: abre las fotos del iPhone y la foto elegida se analiza igual que una nueva, también para productos. (Technical:
docs/diseno-2.0/src/ojo.json, make_pdfs.py, docs/DECISIONS.md)
- Resultado de la cámara más claro y Nota Caluru generosa con la comida real. Sin fila de porción (la cantidad es la de la foto), cada alimento con sus gramos y su fuente, y un espacio “¿Algo no cuadra?” para escribir, por ejemplo, con qué se cocinó. La nota analiza también vitaminas y minerales y solo castiga de verdad a los ultraprocesados. (Technical:
docs/diseno-2.0/src/L13_camara_resultado.png, make_pdfs.py, ojo.json, que_se_ve.json, docs/DECISIONS.md)
- La cámara se conectará a una base de datos de alimentos para ser exacta. Nueva página “Precisión” en el PDF de la cámara: la IA solo reconoce alimentos y gramos, y las calorías salen de la tabla de Caluru y de USDA FoodData Central (Open Food Facts para códigos de barras); la nota de cada producto de España y Latinoamérica se calcula con los datos reales de esa base y reglas fijas. (Technical:
docs/diseno-2.0/src/make_pdfs.py, ojo.json, docs/DECISIONS.md)
- Hoy más limpio. Quitada la pantalla “Registrado, con Deshacer”: al marcar una comida no sale ningún aviso, solo cambian el círculo y los anillos, y tocar el círculo otra vez la desmarca. La pantalla de la cámara “Analizando tu plato” ahora deja la foto limpia y pone sobre cada alimento una etiqueta con su nombre y sus gramos. La hoja “Agregar comida extra” es más elegante: una sola tarjeta con iconos de línea en círculos suaves y títulos en serif. (Technical:
docs/diseno-2.0/src/P703_agregar_extra.png, make_pdfs.py, ojo.json, que_se_ve.json, docs/DECISIONS.md)
- Las imágenes originales viajan con los PDF. La guía de cada PDF pide adjuntar en Linear la imagen original en tamaño completo, que va en la carpeta “imagenes” junto a los PDF, porque la del PDF está reducida. (Technical:
docs/diseno-2.0/src/make_pdfs.py, docs/diseno-2.0/README.md)
- Ideas anotadas para la próxima versión del diseño. “Personalizar” en Recetas, con un swipe de ingredientes (me gusta / no me gusta) que filtra todas las recetas de cada persona; y confirmado que, con el plan anual, los meses gratis por invitar se suman al terminar el año. (Technical:
docs/DECISIONS.md)
- Día 0 más claro: tocar la comida abre la receta. El paso 1 del recorrido ahora ilumina solo la primera comida con una marca de toque y el globo “Toca tu comida y se abre la receta”; nueva pantalla 31b con la receta que sube sobre Hoy (con fibra junto a proteína, carbos y grasa y el botón “Marcar como comida”). El primer Hoy (pantalla 30) lleva una descripción elemento por elemento para construirlo idéntico. (Technical:
docs/diseno-2.0/src/P31_tour1.png, P31b_receta_desde_hoy.png, make_pdfs.py, ojo.json)
- Los PDF del diseño 2.0, listos para pasar a Linear. Cada PDF empieza con instrucciones para el Claude que lo pase a Linear (una tarea por pantalla, copiar los textos tal cual) y las reglas comunes. Cada pantalla de las 11 secciones lleva su código, el archivo de su imagen, “Qué hace”, “Qué se ve” con todos los textos exactos y “Ojo, en la app” con lo que la imagen tiene mal (cifras que no cuadran, logos que no son el real, faltas, textos cortados). Revisión legal del onboarding: aviso de datos enviados a la IA, edad mínima de 16 años, peso objetivo con IMC sano, gráfica marcada como ilustrativa y texto de renovación automática en el paywall. Imágenes nuevas: reseña real en el paywall, oferta en euros sin precio por semana, sin camarones ni pasta (pollo con quinoa, bowl de salmón, tostada de aguacate), filete más realista y sin errata en “Ritmo”. (Technical:
docs/diseno-2.0/src/make_pdfs.py, ojo.json, que_se_ve.json, imágenes en src/)
- Onboarding 2.0 más elegante y con el logo real. Nuevo plato en la bienvenida (bowl de boniato con carne molida, aguacate, queso cottage y miel) y en “Ya podemos calcular” (filete con chimichurri, papas y espárragos); sin plato en “¿Cómo te llamas?”. Todo el swipe, “Elegiste 8 recetas”, “Tu semana está lista” (ahora marca “Las que elegiste”) y “Estás en buenas manos” rehechos en el estilo editorial, con el icono real de Caluru. Textos “Qué se ve” muy detallados para que la IA que edita la app pueda construir cada pantalla. Los scripts de los PDF ya no dependen de carpetas temporales. (Technical:
docs/diseno-2.0/src/*.png, make_pdfs.py, make_alex.py, docs/DECISIONS.md)
- Diseño 2.0 completo para Alex, en PDF. Once documentos en
docs/diseno-2.0/ (pendientes, onboarding, día 0, Hoy, cámara, Mi semana, recetas, grupos, progreso, avisos, Invita y gana) con una imagen por pantalla y su explicación. El onboarding quedó con el estilo final decidido: título en serif, mucho aire, y un plato de comida real renderizado por pantalla; nuevas pantallas de presupuesto y de tiempo para cocinar con tres opciones; swipe sin sellos ni teléfono 3D; cada página del onboarding describe en detalle lo que se ve en la imagen. (Technical: docs/diseno-2.0/*.pdf, docs/diseno-2.0/src/make_pdfs.py, make_alex.py y las imágenes que usan; las imágenes se generan con Higgsfield)
- Prompt para ampliar el catálogo a unas 1.000 recetas nuevas. Texto listo para dárselo al chat de
recipe_agent/, con mínimos por dieta, tipo de comida, tiempo y costo, sin azúcar (solo maple puro o miel cruda) y sin repetir recetas existentes. Nuevo script scripts/list_titles.py que lista los títulos ya publicados y muestra los huecos del catálogo (solo lee, no escribe). (Technical: recipe_agent/PROMPT_CATALOGO_2026-11.md, recipe_agent/scripts/list_titles.py, README.md, skill create-caluru-recipe, .gitignore)
- Decisiones de producto anotadas. Presupuesto sin moneda, idioma según el iPhone (solo español e inglés), tiempo para cocinar con tres máximos, estilo visual del onboarding, cifra del catálogo siempre real, y el análisis de estrategia de octubre. (Technical:
docs/DECISIONS.md, docs/ANALISIS_Y_ESTRATEGIA_2026-10.md)
2026-10-05
- Added instructions so the project can be run by talking to Claude. New
CLAUDE.md, Claude skills for checking the project, building features, saving changes and releasing, a START_HERE.md guide for the developer, this changelog and docs/DECISIONS.md. The main README.md was rewritten (it still described the old “NutriGuru” app). (Technical: CLAUDE.md, .claude/, docs/, START_HERE.md, README.md)
- Stopped storing secrets and junk files on GitHub. Removed a hard-coded OpenAI key from
testopenai.py (it now reads OPENAI_API_KEY from the environment), stopped tracking recipe_generator/recipe_generator/.env, Mac .DS_Store files and a Supabase CLI temp file, and expanded the ignore list so they can’t come back. The old keys are still in GitHub’s history and must be rotated by the owner. (Technical: .gitignore, testopenai.py, git rm --cached)
- Stored the app and tools’ code directly in the repository instead of as empty links. (Technical: commit 5a9fecb “fixed repo”)
- First upload of the whole project to GitHub. (Technical: commit a944536)