Initial commit: SKEEN Derma Experts - Sistema Integral de Gestión Clínica
- Frontend React (SKEEN Brand) con Vite, TypeScript, Tailwind - Frontend Homenest (versión alternativa) - Módulos Odoo 17 custom (citas, pacientes, monedero, pagos, ventas, inventario, whatsapp) - WACRM fork (Next.js 16 + Supabase) - Hermes + Bridge + Skills (Qwen3.6 via Nan Builders) - Scripts de migración y operación - Documentación extensiva en docs/
This commit is contained in:
387
docs/skills-hermes.md
Normal file
387
docs/skills-hermes.md
Normal file
@@ -0,0 +1,387 @@
|
||||
# Skills de Hermes — SKEEN Derma Experts
|
||||
|
||||
**Versión:** 2.0
|
||||
**Fecha:** 16 de julio de 2026
|
||||
|
||||
---
|
||||
|
||||
## 1. Introducción
|
||||
|
||||
Hermes utiliza **skills** (habilidades) modulares para dotar a la IA de capacidades específicas. Cada skill es un directorio con un archivo `SKILL.md` que define:
|
||||
|
||||
- **Metadata:** Nombre, descripción, versión, requisitos.
|
||||
- **Instrucciones:** Qué hacer y cómo responder.
|
||||
- **Tools:** Herramientas disponibles.
|
||||
- **Triggers:** Palabras clave que activan el skill.
|
||||
|
||||
---
|
||||
|
||||
## 2. Skills Disponibles
|
||||
|
||||
| Skill | Trigger Principal | Tools | Frecuencia |
|
||||
|-------|-------------------|-------|------------|
|
||||
| `skeen-rag` | "servicios", "tratamientos", "precios" | file_read, memory_read | On-demand |
|
||||
| `skeen-agendar` | "agendar", "cita", "hora", "disponibilidad" | odoo_api_call, wacrm_send, memory_write | On-demand |
|
||||
| `skeen-pagos` | "pagar", "saldo", "deuda", "puntos" | odoo_api_call, wacrm_send, web_fetch | On-demand |
|
||||
| `skeen-monedero` | "puntos", "monedero", "saldo", "redimir" | odoo_api_call, wacrm_send | On-demand |
|
||||
| `skeen-recordatorios` | Heartbeat (30 min) | odoo_api_call, wacrm_send, memory_read | Cada 30 min |
|
||||
|
||||
---
|
||||
|
||||
## 3. Skill: skeen-rag — Catálogo de Servicios
|
||||
|
||||
### Descripción
|
||||
|
||||
Proporciona información sobre tratamientos, precios, duración, paquetes y contraindicaciones.
|
||||
|
||||
### Activación
|
||||
|
||||
Palabras clave: `servicios`, `tratamientos`, `precios`, `catalogo`, `acne`, `peel`, `laser`, `dermatologia`, `paquete`, `sesiones`
|
||||
|
||||
### Archivo de Datos
|
||||
|
||||
`/root/.hermes/skills/skeen-services.json`
|
||||
|
||||
**Formato:**
|
||||
```json
|
||||
{
|
||||
"clinica": {
|
||||
"nombre": "SKEEN Derma Experts",
|
||||
"direccion": "Blvd. Popotla 123, Playas de Rosarito, BC, Mexico",
|
||||
"telefono": "+52 (664) 123-4567",
|
||||
"horario": {
|
||||
"lunes_viernes": "9:00 - 18:00",
|
||||
"sabado": "9:00 - 14:00",
|
||||
"domingo": "Cerrado"
|
||||
}
|
||||
},
|
||||
"servicios": [
|
||||
{
|
||||
"id": "laser-ful",
|
||||
"nombre": "Depilacion Laser Full Body",
|
||||
"categoria": "tratamiento",
|
||||
"precio": 2500.0,
|
||||
"duracion_min": 90,
|
||||
"precio_paquete": 7000.0,
|
||||
"sesiones_paquete": 3,
|
||||
"notas_paquete": "Ahorro de $500",
|
||||
"descripcion": "Depilacion laser full body...",
|
||||
"contraindicaciones": []
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Instrucciones del Skill
|
||||
|
||||
1. Leer el archivo de catálogo.
|
||||
2. Filtrar servicios relevantes según la pregunta.
|
||||
3. Presentar información de forma clara y amigable.
|
||||
4. SIEMPRE incluir: nombre, precio por sesión, duración, descripción.
|
||||
5. Si el servicio tiene paquete, mencionar ahorro.
|
||||
6. NUNCA diagnosticar condiciones médicas.
|
||||
7. Si no encuentra el servicio, ofrecer consulta de valoración.
|
||||
|
||||
### Ejemplo de Respuesta
|
||||
|
||||
```
|
||||
Hola! En SKEEN contamos con estos tratamientos para depilación:
|
||||
|
||||
1. **Depilación Laser Full Body** — $2,500 MXN por sesión
|
||||
Duración: 90 minutos
|
||||
Depilación laser completa.
|
||||
Paquete de 3 sesiones: $7,000 MXN (ahorro de $500)
|
||||
|
||||
2. **Depilación Laser Axila** — $500 MXN por sesión
|
||||
Duración: 15 minutos
|
||||
Depilación laser por zona pequeña.
|
||||
|
||||
¿Te gustaría agendar una consulta de valoración?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Skill: skeen-agendar — Agendamiento de Citas
|
||||
|
||||
### Descripción
|
||||
|
||||
Gestiona el agendamiento de citas médicas en Odoo.
|
||||
|
||||
### Activación
|
||||
|
||||
Palabras clave: `agendar`, `cita`, `hora`, `disponibilidad`, `reservar`, `turno`
|
||||
|
||||
### Flujo de Agendamiento
|
||||
|
||||
1. **Detectar intención:** Paciente quiere agendar.
|
||||
2. **Consultar servicios:** Usar `skeen-rag` para mostrar opciones.
|
||||
3. **Seleccionar servicio:** Paciente elige tratamiento.
|
||||
4. **Consultar disponibilidad:** Llamar Odoo API `/skeen/api/v1/available_slots`.
|
||||
5. **Presentar opciones:** Mostrar fechas/horas disponibles.
|
||||
6. **Confirmar:** Paciente confirma fecha/hora.
|
||||
7. **Crear cita:** Llamar Odoo API `/skeen/api/v1/create_appointment`.
|
||||
8. **Confirmar al paciente:** Enviar mensaje con detalles.
|
||||
|
||||
### Paquetes de Sesiones
|
||||
|
||||
Si el servicio tiene `package_sessions > 0`:
|
||||
|
||||
1. Informar que existe paquete y su precio.
|
||||
2. Preguntar si quiere sesión individual o paquete.
|
||||
3. Si elige paquete:
|
||||
- Crear N citas separadas (cada 7 días).
|
||||
- La primera a la hora elegida.
|
||||
- Las siguientes a las 9:00 AM (reprogramables).
|
||||
|
||||
### Ejemplo de Respuesta
|
||||
|
||||
```
|
||||
Perfecto! Has elegido Depilación Laser Full Body.
|
||||
|
||||
Tienes estas opciones:
|
||||
- 1 sesión: $2,500 MXN
|
||||
- Paquete 3 sesiones: $7,000 MXN (ahorro de $500)
|
||||
|
||||
¿Cuál prefieres?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Skill: skeen-pagos — Pagos y Saldos
|
||||
|
||||
### Descripción
|
||||
|
||||
Consulta saldo pendiente, genera links de pago, confirma pagos.
|
||||
|
||||
### Activación
|
||||
|
||||
Palabras clave: `pagar`, `saldo`, `deuda`, `puntos`, `link`, `pago`
|
||||
|
||||
### Flujo de Pago
|
||||
|
||||
1. **Consultar saldo:** Llamar Odoo API `/skeen/api/v1/patient_balance`.
|
||||
2. **Mostrar saldo:** Informar monto pendiente y puntos disponibles.
|
||||
3. **Generar link:** Crear link de pago (Stripe/MercadoPago).
|
||||
4. **Enviar link:** Via WhatsApp.
|
||||
5. **Confirmar pago:** Webhook de pasarela → Odoo.
|
||||
|
||||
### Ejemplo de Respuesta
|
||||
|
||||
```
|
||||
Tu saldo pendiente es de $1,500 MXN.
|
||||
|
||||
Tienes 450 puntos en tu monedero (equivalente a $450 MXN).
|
||||
|
||||
¿Quieres que te envíe un link de pago? Puedes pagar con tarjeta o MercadoPago.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. Skill: skeen-monedero — Monedero Digital
|
||||
|
||||
### Descripción
|
||||
|
||||
Gestiona el monedero de puntos/fidelidad de SKEEN.
|
||||
|
||||
### Reglas
|
||||
|
||||
- **Acumulación:** 1 punto por cada $10 MXN gastados.
|
||||
- **Valor:** 1 punto = $1 MXN.
|
||||
- **Redención:** Máximo 50% del total de la compra.
|
||||
- **Vencimiento:** Puntos vencen a los 12 meses de inactividad.
|
||||
- **No transferibles:** Entre pacientes.
|
||||
- **Acumulación:** Solo en pagos confirmados.
|
||||
|
||||
### Activación
|
||||
|
||||
Palabras clave: `puntos`, `monedero`, `saldo`, `redimir`, `fidelidad`
|
||||
|
||||
### Ejemplo de Respuesta
|
||||
|
||||
```
|
||||
Tu monedero SKEEN:
|
||||
Saldo actual: 450 puntos (= $450 MXN)
|
||||
|
||||
Historial reciente:
|
||||
- 03/07/2026: +120 pts (Pago Tratamiento Acne — $1,200)
|
||||
- 28/06/2026: +80 pts (Pago Consulta + peel — $800)
|
||||
|
||||
Puedes redimir tus puntos en tu próxima visita! Cada 10 puntos = $10 MXN de descuento.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. Skill: skeen-recordatorios — Recordatorios
|
||||
|
||||
### Descripción
|
||||
|
||||
Recordatorios automáticos de citas, follow-ups post-tratamiento, re-engagement.
|
||||
|
||||
### Activación
|
||||
|
||||
**Heartbeat:** Cada 30 minutos.
|
||||
|
||||
### Tipos de Recordatorios
|
||||
|
||||
| Tipo | Cuándo | Acción |
|
||||
|------|--------|--------|
|
||||
| Recordatorio de cita | 24h antes | Enviar WhatsApp con template |
|
||||
| Follow-up post-tratamiento | 7 días después | Mensaje de bienestar |
|
||||
| Re-engagement | 90 días inactivo | Incentivo con 50 puntos |
|
||||
|
||||
### Ejecución
|
||||
|
||||
1. Leer recordatorios programados desde `/workspace/memory/recordatorios.md`.
|
||||
2. Buscar entradas vencidas (timestamp <= ahora).
|
||||
3. Enviar via WACRM usando template aprobado.
|
||||
4. Marcar como enviado en memoria.
|
||||
|
||||
### Templates de WhatsApp
|
||||
|
||||
```
|
||||
recordatorio_cita_skeen:
|
||||
"Hola {{1}}! Te recordamos tu cita mañana {{2}} a las {{3}} en SKEEN Derma Experts."
|
||||
|
||||
followup_tratamiento_skeen:
|
||||
"Hola {{1}}! Han pasado {{2}} días desde tu {{3}}. ¿Cómo te sientes?"
|
||||
|
||||
reengage_skeen:
|
||||
"Hola {{1}}! Te extrañamos en SKEEN. Agenda tu próxima visita y recibe 50 puntos."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. Personalidad de Sofía
|
||||
|
||||
### Archivo: SOUL.md
|
||||
|
||||
```markdown
|
||||
# Sofia — Asistente Virtual de SKEEN Derma Experts
|
||||
|
||||
## Identidad
|
||||
- Nombre: Sofia
|
||||
- Rol: Asistente virtual de SKEEN Derma Experts
|
||||
- Personalidad: Cálida, profesional, empática, eficiente
|
||||
- Idioma: Español (México)
|
||||
- Emoji favorito: 💙✨🌸
|
||||
|
||||
## Tonos de voz
|
||||
- Saludo: "Hola! Soy Sofia de SKEEN 💙"
|
||||
- Confirmación: "Perfecto! Tu cita está confirmada ✨"
|
||||
- Empatía: "Entiendo, estamos aquí para cuidar tu piel 🌸"
|
||||
- Urgencia: "Voy a conectarte con un especialista de inmediato"
|
||||
|
||||
## Límites
|
||||
- NO diagnosticar condiciones médicas
|
||||
- NO recomendar medicamentos específicos
|
||||
- SIEMPRE sugerir consulta presencial para evaluaciones
|
||||
- Máx 3 párrafos por mensaje de WhatsApp
|
||||
- Máx 2 emojis por mensaje
|
||||
|
||||
## Handoff a Humano
|
||||
Trigger: "AGENTE", "HUMANO", "ESPECIALISTA", "DOCTOR"
|
||||
Respuesta: "Te conecto con un especialista enseguida. Espera un momento 💙"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. System Prompt del Bridge
|
||||
|
||||
El bridge (`webhook-bridge.js`) usa un system prompt que define a Sofía:
|
||||
|
||||
```javascript
|
||||
const SKEEN_SYSTEM_PROMPT = `Eres Sofia, la asistente virtual de SKEEN Derma Experts, una clínica dermatológica en Playas de Rosarito, BC, México.
|
||||
|
||||
PERSONALIDAD:
|
||||
- Cálida, profesional, empática y eficiente.
|
||||
- Hablas español mexicano natural.
|
||||
- Usas emojis moderadamente (máx 2 por mensaje).
|
||||
|
||||
REGLAS ESTRICTAS:
|
||||
1. NUNCA diagnostiques condiciones médicas.
|
||||
2. NUNCA recomiendes medicamentos específicos.
|
||||
3. SIEMPRE sugiere consulta presencial para evaluaciones.
|
||||
4. Máximo 3 párrafos por respuesta.
|
||||
5. Si el usuario escribe "AGENTE", "HUMANO", "ESPECIALISTA" o "DOCTOR", ofrece conectarlo con un especialista humano.
|
||||
|
||||
DATOS DE LA CLÍNICA:
|
||||
- Nombre: SKEEN Derma Experts
|
||||
- Dirección: Blvd. Popotla 123, Playas de Rosarito, BC
|
||||
- Horario: Lun-Vie 9:00-18:00, Sáb 9:00-14:00
|
||||
- Teléfono: +52 (664) 123-4567
|
||||
|
||||
SERVICIOS PRINCIPALES:
|
||||
- Consulta Dermatológica: $800 MXN (30 min)
|
||||
- Tratamiento Facial para Acné: $1,500 MXN (60 min)
|
||||
- Peel Químico: $1,500 MXN (30 min)
|
||||
- Depilación Láser: desde $500 MXN (15 min)
|
||||
- Tratamiento Anti-Edad: $2,500 MXN (75 min)
|
||||
|
||||
INSTRUCCIONES:
|
||||
- Si el paciente quiere agendar, pregunta por servicio, fecha y hora.
|
||||
- Si pregunta por servicios, usa la lista de arriba.
|
||||
- Si pregunta por precios, menciona que son aproximados.
|
||||
- Siempre termina con una pregunta o invitación a agendar.`;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. Configuración de Skills en Hermes
|
||||
|
||||
### Instalación
|
||||
|
||||
```bash
|
||||
# Los skills ya están en /root/.hermes/skills/
|
||||
# Verificar instalación
|
||||
hermes skills list
|
||||
```
|
||||
|
||||
### Habilitar/Deshabilitar
|
||||
|
||||
```bash
|
||||
hermes skills enable skeen-rag
|
||||
hermes skills disable skeen-recordatorios
|
||||
```
|
||||
|
||||
### Actualizar Catálogo de Servicios
|
||||
|
||||
```bash
|
||||
cd /root/migracion
|
||||
python3 importar_servicios_inventario.py --solo-hermes
|
||||
```
|
||||
|
||||
Esto regenera `/root/.hermes/skills/skeen-services.json` desde Odoo.
|
||||
|
||||
---
|
||||
|
||||
## 11. Troubleshooting
|
||||
|
||||
### Skill no se activa
|
||||
|
||||
1. Verificar que el skill esté enabled: `hermes skills list`
|
||||
2. Verificar palabras clave en `SKILL.md` metadata.
|
||||
3. Verificar que el archivo JSON de datos exista.
|
||||
|
||||
### Respuestas incorrectas
|
||||
|
||||
1. Revisar system prompt en `webhook-bridge.js`.
|
||||
2. Revisar `SOUL.md` y `AGENTS.md`.
|
||||
3. Verificar que el modelo sea correcto (Qwen3.6).
|
||||
|
||||
### No se crean citas
|
||||
|
||||
1. Verificar API key de Odoo.
|
||||
2. Verificar que el paciente exista o se pueda crear.
|
||||
3. Revisar logs de Odoo: `tail -f /tmp/odoo.log`.
|
||||
|
||||
---
|
||||
|
||||
## 12. Mejoras Futuras
|
||||
|
||||
| Mejora | Descripción | Prioridad |
|
||||
|--------|-------------|-----------|
|
||||
| Integración Hermes Gateway nativa | Usar gateway de Hermes en lugar de bridge custom | Media |
|
||||
| Skills de reportes | Generar reportes via WhatsApp | Baja |
|
||||
| Multi-idioma | Soporte inglés | Baja |
|
||||
| Voz | Integración con voz de WhatsApp | Baja |
|
||||
| Analytics | Tracking de conversaciones | Media |
|
||||
Reference in New Issue
Block a user