# Guía de uso — Task WhatsApp Chatbot

Principios
- Prefijo de comandos: “t” o “tarea”.
- Respuestas “solo DM”: el bot no publica en grupos; siempre envía un mensaje directo al autor (salvo resumen opcional al crear si se activa).
- Fechas: puedes escribir “hoy” o “mañana” y también YYYY-MM-DD. La zona horaria se configura con la variable de entorno TZ (por defecto Europe/Madrid).
- Límite de uso: rate limit por usuario (15/min por defecto); si lo superas, verás un aviso (acotado a 1/min).

Comandos y alias
- Crear
  - Aliases: n, nueva, crear, +
  - Ejemplos:
    - t nueva Acta de la reunión mañana
    - t n Carteles fiesta 2025-09-12 @600123456
    - t + Preparar dossier @600111111 @600222222
  - Reglas:
    - En grupo: si no mencionas a nadie → “sin responsable”.
    - En DM: si no mencionas a nadie → se asigna al creador.
- Ver
  - Aliases: ver, mostrar, listar, ls
  - Scopes:
    - grupo — pendientes del grupo desde el que invocas (incluye “sin responsable”).
    - mis — tus pendientes (agregado de todos tus grupos).
    - sin — pendientes sin responsable (según contexto).
    - todos — visión general (según permisos futuros).
  - Ejemplos:
    - t ver grupo
    - t ver mis
- Completar
  - Aliases: x, hecho, completar, done
  - Ejemplos:
    - t x 26
    - t hecho 31
  - Notas: registra quién completa; no restringido solo a asignados (por fluidez).
- Tomar
  - Aliases: tomar, claim
  - Ejemplo: t tomar 26
  - Idempotente: si ya eres asignado, lo indica sin error.
- Soltar
  - Aliases: soltar, unassign
  - Ejemplo: t soltar 26
  - Idempotente: si no estabas asignado, lo indica sin error. La tarea puede quedar “sin responsable” si no quedan asignados.
- Configurar recordatorios
  - Aliases: alarma, recordatorio, configurar, config
  - Opciones: daily | weekly | off
  - Ejemplos:
    - t alarma daily
    - t alarma weekly
    - t alarma off
  - Notas: resumen diario/weekly por DM; weekly los lunes a la hora configurada (por defecto 08:30 si aplica); se evita duplicar en el mismo día y no se envía si no hay tareas.
- Ayuda
  - Aliases: ayuda, help, ?
  - Ejemplos: t, t ayuda

Gramática y formato
- Menciones
  - Acepta menciones reales del cliente y tokens @número en el texto.
  - En DM, WhatsApp no muestra chips de mención de terceros; se incluye @número como texto para acción rápida.
- Fechas
  - “hoy”, “mañana” o YYYY-MM-DD. La app usa TZ del servidor para interpretar y mostrar.
- Salida (mensajes)
  - Formato compacto con emojis; descripciones en cursiva; fechas en dd/MM.
  - Fechas vencidas marcadas con ⚠️.
  - Ejemplos de cabeceras:
    - 📝 26 _Acta de la reunión_
    - 📬 Tarea 26 — 📅 12/09

Ejemplos prácticos
- Crear en grupo sin menciones (queda sin responsable):
  - t nueva Revisión presupuesto mañana
- Crear en DM (se asigna a ti):
  - t nueva Preparar documento hoy
- Crear con varios asignados:
  - t nueva Carteles @600111111 @600222222 2025-10-10
- Ver tus tareas:
  - t ver mis
- Completar:
  - t x 42
- Tomar y soltar:
  - t tomar 42
  - t soltar 42
- Configurar recordatorios:
  - t alarma weekly

Limitaciones y notas
- El bot no publica en grupos por diseño.
- La cola de respuestas no garantiza orden estricto por destinatario.
- En algunos clientes, las menciones en DM no se muestran como chips.
- Límite de 15 comandos/min por usuario (configurable).

Administración
- Solo para usuarios en ADMIN_USERS (se normalizan a dígitos).
- Comandos clave:
  - /admin pendientes — lista grupos en estado “pending”.
  - /admin habilitar-aquí — permite el grupo actual (alias: enable).
  - /admin deshabilitar-aquí — bloquea el grupo actual (alias: disable).
  - /admin allow-group <group_id@g.us> — permite un grupo específico.
  - /admin block-group <group_id@g.us> — bloquea un grupo específico.
  - /admin sync-grupos — fuerza sincronización de grupos.
- Modos de control de acceso:
  - off — sin control (no recomendado).
  - discover — grupos desconocidos quedan “pending” y (opcional) se avisa por DM a ADMIN_USERS.
  - enforce — solo se procesan mensajes/comandos de grupos “allowed”.
- Notas:
  - La app es multicomunidad; el gating evita ruido en grupos no aprobados.
  - Ver variables: GROUP_GATING_MODE, ADMIN_USERS, ALLOWED_GROUPS, NOTIFY_ADMINS_ON_DISCOVERY.

Contacto y soporte
- Si encuentras problemas o tienes ideas, abre un issue en el repositorio o contacta con el administrador de la instancia.
