You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
taskbot/docs/whatsapp-style-guide.md

97 lines
3.8 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Guía de Estilo de Mensajes para WhatsApp (Help v2)
Objetivo: mensajes claros, consistentes y resistentes a cambios menores de copy.
Principios
- Responder por DM: incluso si el comando viene de un grupo, las respuestas al usuario llegan por privado. Nota: en modo gating estricto (GROUP_GATING_MODE='enforce') el bot puede no responder en grupos no permitidos.
- Estructura visual reconocible:
- Secciones en negrita y MAYÚSCULAS: `*COMANDOS BÁSICOS*`.
- Comandos e IDs en monoespaciado (backticks).
- Listas con “- ” por línea.
- Notas en cursiva.
- Brevedad y accionabilidad: priorizar ejemplos cortos y CTAs (“Prueba `/t ayuda`”, “Envía `/t web`”).
- Estabilidad para tests: evitar asserts por igualdad exacta; preferir substrings semánticos.
Componentes de formato
- Encabezados de sección:
- Patrón: `*${TÍTULO EN MAYÚSCULAS}*`
- Ej.: `*COMANDOS BÁSICOS*`
- Comandos:
- Siempre en backticks: `` `/t ver mis` ``
- IDs:
- Mostrar con 4 dígitos entre backticks: `` `0026` `` (usar `codeId()`).
- Fechas:
- Mostrar como `DD/MM`, precedidas de icono si aplica (ej.: `⚠️` si vencida). Usar `formatDDMM()`.
- Notas:
- En cursiva: `_Este grupo no está activo._`
- Bullets:
- “- ” al inicio de cada línea. Evitar listas demasiado largas (>10).
Emojis recurrentes
- ⚠️ Advertencia (vencida, no encontrado, truncado).
- ✅ Confirmación genérica.
- 📅 Fecha (según `ICONS.date`).
- 👤 / 👥 Responsables (uno o varios).
- Crear, ✔️ Completar, 🧲/✋ Tomar/Soltar (según `ICONS` disponibles).
- Evitar exceso: 12 por línea como máximo.
Patrones comunes
- Confirmación de creación:
- Línea 1: icono + ID + descripción
- Línea 2: fecha (si existe)
- Línea 3: responsable(s) o “sin responsable”
- Listados:
- Título (nombre de grupo o `Tus tareas`)
- Bullets de items con: ID, descripción, fecha (con `⚠️` si vencida), responsable
- Sufijo “... y N más” si aplica
- Ayuda rápida:
- Secciones: “COMANDOS BÁSICOS”, “LISTADOS”, “ACCESO WEB”
- Bullets con ejemplos: `` `/t n ...` ``, `` `/t ver mis|grupo|todos|sin` ``, `` `/t x 26` ``, `` `/t tomar 12` ``, `` `/t configurar ...` ``, `` `/t web` ``
Localización
- Todo copy en español. Evitar fugas de claves internas en inglés (ej. “weekly”).
- En recordatorios, exponer etiquetas en español:
- daily → “diario”
- weekdays → “laborables (lunes a viernes)”
- weekly → “semanal (lunes)”
- off → “apagado”
- Si por compatibilidad se aceptan términos en inglés como input, la respuesta debe mantener español.
Buenas prácticas
- Evitar párrafos largos; preferir 13 líneas por bloque.
- Los mensajes de 'Uso:' llevan el prefijo .
- Incluir uso cuando falten argumentos:
- Ej.: ` Uso: \`/t tomar 26\` o múltiples: \`/t tomar 12 19 50\` o \`/t tomar 12,19,50\` (máx. 10)`
- Mensajes de error claros y accionables: “No puedes tomar esta tarea… Pide acceso a un admin si crees que es un error.”
- En listados, omitir líneas en blanco finales.
Para tests
- Preferir asserts de “contiene” con fragmentos estables (IDs en backticks, comandos en backticks, nombres de secciones).
- Si hace falta, crear helper `stripFormatting` que quite `*`, `_` y `` ` `` para comparar texto plano.
Ejemplos
Ayuda rápida
```
*COMANDOS BÁSICOS*
- `/t n Descripción 2025-11-05 @Ana`
- `/t ver` (en grupo) · `/t ver mis` (DM) · `/t ver todos`
- `/t x 26` · `/t tomar 12`
- `/t configurar diario|l-v|semanal|off [HH:MM]`
- `/t web`
_El bot responde por DM, incluso si escribes desde un grupo._
```
Confirmación de completar (ya estaba)
```
`0026` ya estaba completada — Preparar informe — 📅 05/11
```
Listado de “sin responsable”
```
Nombre del Grupo — Sin responsable
- `0142` Revisión de PR — 📅 12/03
- `0185` Montar demo — ⚠️ 📅 09/03
... y 3 más
```