Kotlin · Room · Material Design 3 · MPAndroidChart · OkHttp
- Una tarea por sesión. Al cerrar una, para y espera. No encadenes tareas aunque el humano diga «sigue» u «ok»: eso confirma lo que estabas haciendo, no autoriza lo siguiente.
- Sin prueba real ejecutada, la tarea no se cierra. Prueba real es un comando que corre y cuyo resultado se muestra — los tests, el instalador, el script. Leer el código no es probarlo.
- No crees archivos ni directorios que no estén en el plan aprobado. Si hacen falta, pídelo antes. Lo que crees debe coincidir con la estructura documentada en PROJECT.md; si no coincide, para y pregunta.
- No tocar:
- Clave de firma de la aplicación (keystore) y su contraseña.
- Identificador de aplicación (package name): cambiarlo rompe instalaciones existentes.
- Versión mínima de Android soportada (minSdk).
- Ningún secreto viaja dentro del paquete.
- Parámetros de la tabla nutricional: lista de nutrientes mostrados, unidades de medida, fórmulas de cálculo.
- El código que contradice una decisión registrada es un alto, no una nota. Si lo que hay en el repo no coincide con una ADR de DECISIONS.md, con la estructura de PROJECT.md, para ahí y dilo. No lo anotes en WORKLOG y sigas, no adaptes el código nuevo a lo que ya hay, no lo trates como decisión tácita del humano.
- Antes de escribir código: presentar plan (archivos previstos, propósito de cada uno, funciones con entradas y salidas, cómo se llaman entre sí) y esperar aprobación.
- Generar o repartir un instalable → requiere confirmación humana. Es irreversible hacia fuera: quien lo tiene, lo tiene, y no hay forma de retirarlo.
| Tipo de tarea | Prueba mínima para cerrarla |
|---|---|
| Lógica sin interfaz | Test automático ejecutado, con su salida |
| Pantalla o componente | Compila y se ve en emulador |
| Preparar un instalable | El archivo se genera e instala en un dispositivo real |
Compilar sin errores no es probar.
Hito activo: v1 — MVP
- Montar cadena Kotlin/Android — cierra al compilar el proyecto vacío y que este arranque en el emulador, con versiones anotadas en docs/ENTORNO.md
- [▶] [H] Obtener dataset USDA y alojarlo — descargar CSV/JSON de FoodData Central, subir a servidor accesible (GitHub Releases), confirmar URL pública
- Esquema Room y modelos — Food, Intake, Dish, DishItem, NutrientGoal, DAOs
- Carga inicial — descarga, parseo, poblado Room; progreso y reintentos
- Búsqueda local — búsqueda en Room por nombre, resultados seleccionables
- Registro de ingestas — alimento o plato, cantidad, editar/borrar
- Gestión de platos — crear con alimentos y cantidades, cálculo de nutrientes
- Resumen de nutrientes — totales diarios, gráfica, comparativa con objetivos
| Tipo de tarea | Archivos a cargar |
|---|---|
| Ejecutar tarea ya definida arriba | Solo este archivo |
| Implementar o modificar un módulo | + docs/INTERFACES.md (si existe) |
| Montar o revisar el entorno | + docs/ENTORNO.md |
| Feature nueva o duda de arquitectura | + PROJECT.md |
| Decisión técnica nueva o revisar una previa | + PROJECT.md + DECISIONS.md |
| Planificación, roadmap o negocio | + ROADMAP.md |
| Consulta de histórico | + WORKLOG.md (solo si se pide) |
No cargar archivos «por si acaso». Si la tarea en curso está definida arriba y no hay ambigüedad, no se abre nada más.
- Comprobar que está cerrada de verdad: prueba ejecutada, y si lleva
[H], la parte humana también hecha. Si algo sigue pendiente, no se cierra. - Marcar
[x]la tarea cerrada y pasar[▶]a la siguiente de la lista. La marca[H]pertenece solo a la tarea que la llevaba: no la arrastres a la siguiente. - Actualizar en PROJECT.md la fila de cada módulo tocado: estado real (🟢/🟡/⚪/🔴) y última ADR si aplica. Es la única parte de PROJECT.md que se edita al cerrar una tarea.
- Añadir una línea al final de WORKLOG.md: fecha, qué se hizo, PASS/FAIL, archivos tocados. Nunca insertes dentro de una entrada ya escrita ni reordenes las anteriores — append-only significa al final del archivo, después de todo lo que ya hay.
- Editar solo el bloque de Estado actual — no reescribir este archivo entero.
- Parar. La tarea siguiente es de la sesión siguiente.
Redactar la ADR y añadirla al final de DECISIONS.md. Nunca reescribir una ADR anterior: si queda obsoleta, marcarla «Superado por ADR-XXX». → Requiere confirmación humana.
Cargar ROADMAP.md, elegir el siguiente hito y descomponerlo en 5-8 tareas que sustituyen al backlog de este archivo. → Requiere confirmación humana.
Si PROJECT.md supera ~150 líneas, avisar y proponer qué resumir o mover. Nunca podar por cuenta propia. → Requiere confirmación humana.
- No modificar las reglas de este archivo salvo petición explícita.
- No reescribir, reordenar ni insertar dentro de entradas ya escritas de WORKLOG.md.
- No añadir tareas al backlog sin aprobación.
- No modificar DECISIONS.md sin confirmación.
- No cargar WORKLOG.md salvo petición explícita.