# 🤖 QA y Hardening de Chatbot de Venta de Libros Digitales

## 🎯 Objetivo

Asegurar que el chatbot:

* No entregue productos incorrectos
* No entregue sin pago validado
* Maneje ambigüedad y errores reales de usuarios
* Sea robusto ante fallos técnicos y casos límite

---

# ⚠️ Escenarios límite (edge cases)

## 1. Ambigüedad en el pedido

**Ejemplos:**

* “quiero el libro azul”
* “el de hábitos”
* “uno de productividad”

**Riesgo:**
Entrega incorrecta

**Ajuste de prompt:**

> “Si el usuario no especifica un libro único, debes pedir aclaración mostrando opciones concretas antes de continuar.”

---

## 2. Lenguaje natural / errores del usuario

**Ejemplos:**

* “abitos atomikos”
* “el de james clear”
* “atomic”

**Riesgo:**
No reconocer intención

**Ajuste de prompt:**

> “Debes interpretar errores ortográficos, abreviaciones y lenguaje informal para identificar la intención del usuario.”

---

## 3. Usuario cambia de opinión a mitad del flujo

**Ejemplo:**

* “quiero el libro A”
* luego: “mejor el B”

**Riesgo:**
Cobrar/entregar el libro incorrecto

**Ajuste de prompt:**

> “Si el usuario cambia de libro, debes confirmar el nuevo pedido antes de continuar.”

---

## 4. Usuario solicita múltiples libros

**Ejemplo:**

* “quiero A y B”

**Riesgo:**
Confusión en pago/entrega

**Ajuste de prompt:**

> “Si hay múltiples productos, debes confirmar la lista completa antes de enviar datos de pago.”

---

## 5. Usuario afirma haber pagado sin comprobante

**Ejemplo:**

* “ya pagué”

**Riesgo:**
Entrega sin pago

**Ajuste de prompt:**

> “Nunca debes asumir un pago sin comprobante. Solicítalo siempre de forma clara y amable.”

---

## 6. Comprobante ilegible o dudoso

**Riesgo:**
Fraude o error

**Ajuste de prompt:**

> “Si el comprobante no es claro, debes solicitar uno nuevo antes de validar el pago.”

---

## 7. Comprobante sin contexto

**Ejemplo:**
Usuario envía imagen sin haber pedido libro

**Riesgo:**
Asignar pago incorrectamente

**Ajuste de prompt:**

> “Si recibes un comprobante sin contexto, debes preguntar a qué pedido corresponde antes de validar.”

---

## 8. Pago incorrecto (monto menor o mayor)

**Riesgo:**
Pérdidas o inconsistencias

**Ajuste de prompt:**

> “Debes verificar que el monto coincida exactamente antes de autorizar la entrega.”

---

## 9. Usuario abandona y regresa

**Ejemplo:**

* Vuelve horas después

**Riesgo:**
Pérdida de contexto

**Ajuste de prompt:**

> “Si la conversación se retoma, debes resumir el estado actual antes de continuar.”

---

## 10. Usuario reinicia conversación

**Ejemplo:**

* “hola” otra vez

**Riesgo:**
Duplicar flujo

**Ajuste de prompt:**

> “Si el usuario reinicia, ofrece continuar el proceso anterior o empezar desde cero.”

---

## 11. Usuario desconfía

**Ejemplo:**

* “esto es estafa?”

**Riesgo:**
Pérdida de conversión

**Ajuste de prompt:**

> “Responde con empatía, explica el proceso y genera confianza sin ser defensivo.”

---

## 12. Usuario no puede abrir el archivo

**Riesgo:**
Mala experiencia postventa

**Ajuste de prompt:**

> “Debes ofrecer reenvío inmediato y alternativas de formato si es posible.”

---

## 13. Fallos técnicos

**Ejemplo:**

* No se puede enviar archivo

**Riesgo:**
Usuario frustrado

**Ajuste de prompt:**

> “Si ocurre un error técnico, informa claramente y comunica que estás reintentando o escalando.”

---

## 14. Usuario envía contenido irrelevante

**Ejemplo:**

* audios, memes, links

**Riesgo:**
Romper flujo

**Ajuste de prompt:**

> “Ignora contenido irrelevante y redirige al flujo actual de compra.”

---

## 15. Usuario intenta saltarse el flujo

**Ejemplo:**

* “pásamelo ya”

**Riesgo:**
Entrega sin validación

**Ajuste de prompt:**

> “Nunca debes saltarte pasos críticos (confirmación de libro y pago validado).”

---

# 🧠 Reglas globales para el prompt (MUY importante)

Agrega este bloque a tu prompt principal:

```
REGLAS CRÍTICAS:

1. Nunca envíes el producto sin:
   - Confirmar el libro exacto
   - Validar el pago con comprobante claro

2. Ante cualquier ambigüedad:
   - Detén el flujo
   - Solicita aclaración

3. Prioriza precisión sobre velocidad:
   - Es mejor preguntar que equivocarse

4. Mantén siempre un tono:
   - Claro
   - Amable
   - Natural (no robótico)

5. Si hay error o duda:
   - No avances
   - Explica y pide lo necesario
```

---

# 🧩 Recomendaciones generales (nivel producción)

## ✅ 1. Manejo de estado

* Guarda:

  * libro seleccionado
  * estado de pago
  * timestamp de interacción

---

## ✅ 2. Validación de pagos (ideal)

* No depender solo del bot
* Tener:

  * validación manual opcional
  * o integración con sistema de pagos

---

## ✅ 3. Logs y monitoreo

Registra:

* errores
* conversaciones fallidas
* casos de abandono

---

## ✅ 4. Mensajes proactivos

Ejemplos:

* “¿Sigues interesado?”
* “¿Te reenvío los datos de pago?”

---

## ✅ 5. Escalamiento humano

Define cuándo intervenir:

* comprobantes dudosos
* usuarios molestos
* errores repetidos

---

## 🚨 Insight clave

La mayoría de errores en estos bots NO vienen del flujo ideal, sino de:

* ambigüedad
* pagos mal validados
* usuarios impredecibles

Si tu prompt cubre eso, ya estás por delante del 90%.