Cómo construí un filtro de control de calidad para ocultar señales de automatización

La automatización se revela de formas inesperadas.

Gestionaba un flujo de contenido automatizado para Bluesky. Una publicación se envió mencionando "el flujo de contenido" (the content pipeline). En un blog técnico, eso está bien. En una línea de tiempo social, es una señal de alerta. Les dice a los lectores que están hablando con un bot.

Construí un script de control de calidad para evitar esto. Actúa como un filtro entre la etapa de generación y la etapa de publicación.

El nuevo flujo de trabajo es el siguiente: bluesky-qc.mjs → (PASS) bluesky-post-queue.mjs → Bluesky API

El script utiliza cuatro filtros para revisar cada entrada:

  • Filtro 1: Filtrado de frases Utilizo una lista de regex para detectar palabras que señalan automatización. Bloquea términos como "AI-generated", "cron", "content pipeline" o "batch test". Si una publicación suena como un informe de desarrollo, falla.

  • Filtro 2: Verificación de obsolescencia Reviso dos tipos de contenido desactualizado: • Frases desactualizadas: Detecta palabras como "hoy" o "recién lanzado" que pierden sentido si la publicación se retrasa. • Marcas de tiempo desactualizadas: Si una entrada tiene más de 14 días, se rechaza.

  • Filtro 3: Predicción de interacción (engagement) El script analiza mis últimas 300 publicaciones. Predice si los hashtags de una nueva publicación tendrán un buen rendimiento. Actualmente, esto solo registra una advertencia, pero pronto lo convertiré en un fallo crítico (hard fail).

  • Filtro 4: Validación de calidad (planificado) Tengo la intención de añadir una capa final utilizando un protocolo de calidad para detectar errores sutiles.

Cada fallo se registra en un log de rechazos. Reviso este log una vez a la semana. Esto me ayuda a corregir mis prompts. Si el filtro sigue detectando "content pipeline", sé que necesito cambiar la forma en que escribe la IA.

¿Por qué usar un filtro en lugar de simplemente mejores prompts? Los prompts son probabilísticos. Pueden fallar. Un filtro es determinista. Sigue reglas estrictas.

Usar ambas capas es la forma más segura de mantener un tono humano.

Fuente: https://dev.to/morinaga/how-i-built-a-pre-post-qc-gate-that-blocks-bluesky-automation-from-self-revealing-41ja