Saltar al contenido principal

Hábitos

Un hábito es una práctica que quieres sostener en el tiempo. A diferencia de una tarea (que se completa y desaparece) o de un evento (que tiene una fecha específica), un hábito se registra día a día y lo que importa es la constancia, la racha y la tendencia.

Le dices al agente "quiero crear un hábito de leer cada día" y queda creado con la frecuencia que definas.

Crear un hábito

El agente Administración y productividad tiene la tool create_habit. Define:

  • Título — qué quieres hacer ("Meditar", "Correr", "Aprender inglés")
  • Emoji — ícono visual para el dashboard
  • Descripción — texto libre, opcional
  • Tipo de actividad — clasificación (ejercicio, meditación, lectura, idioma, etc.) — afecta el color y las estadísticas agregadas
  • Frecuencia (frequency_type) — tres modos: diario, semanal o personalizado
  • Días objetivo (target_days) — qué días de la semana cuentan, como números del 0 al 6 (0 = domingo, 1 = lunes, …, 6 = sábado). Por defecto los siete. target_days=[1, 3, 5] es lunes, miércoles y viernes
  • Veces por período (target_times_per_period) — cuántas veces hay que completarlo en cada período. Por defecto 1
  • Recordatorio — un push diario opcional, con hora (08:00)

La pareja frecuencia + veces por período es la que da sentido a todo, y es la parte que más se malinterpreta. "Semanal" por sí solo no significa una vez por semana: significa N veces por semana, y ese N lo pone target_times_per_period.

FrecuenciaVeces por períodoSignifica
daily1Una vez al día
weekly3Tres veces por semana
customNN veces dentro de los días objetivo

Así, "quiero ir al gimnasio 3 veces por semana" es frequency_type="weekly" con target_times_per_period=3 — no un hábito diario que vas a incumplir cuatro días de cada siete.

También puedes crear y configurar hábitos desde la pestaña Hábitos en la UI.

Registrar completado

El agente tiene log_habit para marcar un hábito como cumplido en un día específico. Desde la UI tienes dos caminos:

  • Rápido — tocas el checkbox del card en el dashboard y queda registrado para hoy
  • Detallado — abres el diálogo de registro y agregas duración (con selector de horas/minutos) y notas opcionales. Útil si quieres saber no solo si meditaste, sino cuánto tiempo

La duración es una propiedad del registro, no del hábito. No defines "45 minutos esperados" al crearlo; anotas los minutos que dedicaste al momento de registrar la sesión ("hice 45 minutos de ejercicio"). El hábito responde si lo hiciste; el registro responde cuánto.

También puedes registrar días pasados tocando la celda correspondiente en el grid de contribución.

El grid de contribución

La pantalla de detalle de un hábito muestra un grid estilo GitHub donde cada celda es un día. El estado es binario — hiciste el hábito o no lo hiciste:

  • Verde — completaste ese día
  • Neutro — no lo completaste (o el día aún no llega)

Puedes cambiar la escala entre semana, mes, trimestre y año para ver la tendencia a diferentes resoluciones.

En el chat, el grid que devuelve read_habit_calendar distingue además los días que no te tocaban: es un día cumplido, un día objetivo que fallaste, y · un día que ni siquiera estaba programado. Fallar un día que no era tuyo no cuenta como fallar.

Rachas y estadísticas

La tool read_habit_stats (y la UI de detalle) muestran:

  • Racha actual — cuántos días consecutivos llevas cumpliendo
  • Mejor racha — récord histórico
  • Tasa de cumplimiento — porcentaje de días objetivo cumplidos en los últimos 30 días por defecto. La ventana es configurable: puedes pedirle al agente "¿cómo voy con el gimnasio en los últimos 90 días?" y la ajusta
  • Total de completados — todas las veces que has completado el hábito

read_habit_calendar devuelve una representación textual del grid — útil cuando le preguntas al chat "¿cómo va mi hábito de meditación?". Su ventana también es configurable: 90 días por defecto, hasta un máximo de un año.

Pausa y archivado

Si necesitas pausar un hábito temporalmente — vacaciones, enfermedad, lo que sea — edit_habit lo pone en estado paused. No se borran las estadísticas ni se rompe la racha acumulada. Cuando lo reactivas (status=active), retoma desde donde estaba sin romper el historial.

El estado archived lo saca del dashboard sin borrarlo, por si más adelante quieres revisar el histórico.

delete_habit es soft-delete: marca un deleted_at pero conserva la fila por si la necesitas recuperar.

Resumen de tools

ToolPara qué
read_habitsLista hábitos activos/pausados/archivados con su racha actual.
create_habitCrea un hábito nuevo con frecuencia, días objetivo, veces por período y tipo.
edit_habitRenombra, cambia frecuencia o estado (preserva streaks al pausar).
delete_habitSoft-delete.
log_habitMarca cumplimiento de un día, con duración y notas opcionales (requiere habit_id válido).
read_habit_statsStreak actual + mejor + tasa de cumplimiento (30 días por defecto).
read_habit_calendarGrid de contribución en texto (90 días por defecto, máximo un año).