Herramientas de IA para Programar

Evita el AI Slop: Cómo Mantener la Calidad del Código con Vibe Coding (2026)

20 ago 202613 min de lectura

El AI slop (en software) es el código que una IA genera y que compila y pasa los tests, pero pudre tu base de código en silencio porque es estructuralmente superficial y se repite a escala de máquina. Es peligroso porque parece terminado, se propaga rápido y se cuela por todos los controles en los que tu equipo confía. Tres reglas de oro para evitar el AI slop: nunca publiques código que no entiendes, carga buen contexto antes de escribir el prompt y revisa el código de la IA como si viniera de un desconocido al que contrataste. En este post te doy una taxonomía de señales de alerta, un checklist práctico y un ejemplo real de antes y después.

Jasmine, una dev que usa Claude Code todos los días y ha publicado (y limpiado) suficiente AI slop como para escribir este texto.

El vibe coding te da una velocidad brutal. Pero cualquiera que haya dejado a la IA escribir código durante un mes se topa con la misma sensación: haces merge de un PR que "funciona de maravilla" y, semanas después, descubres que falla en un caso límite o levanta una capa de abstracción que nadie pidió. Eso es AI slop. Este post no está en contra del vibe coding - si el término es nuevo para ti, lee primero qué es el vibe coding - va sobre mantener la calidad cuando tu vibe coding tiene disciplina.

¿Qué es el AI slop? (y por qué se diferencia del "AI slop" de las redes sociales)

El AI code slop es código generado por una IA que compila y pasa los tests, pero que aun así pudre tu base de código porque es estructuralmente superficial, ciego a las convenciones del proyecto y reproducido a escala de máquina, más rápido de lo que una persona puede revisar. No es código "claramente incorrecto" - si estuviera obviamente roto, lo pillarías al instante. El slop es peligroso precisamente porque parece correcto.

Esta distinción importa, porque la expresión "AI slop" está siendo llevada en dos direcciones:

Dos significados distintos de "AI slop":

1. AI content slop - la basura producida en masa: vídeos, imágenes y artículos que inundan los feeds de las redes sociales. Merriam-Webster nombró a "slop" su Palabra del Año 2025 (anunciada el 15 de diciembre de 2025) exactamente en este sentido. La mayoría de los artículos que encontrarás sobre "AI slop" hablan de esto.

2. AI code slop - el código de baja calidad producido por IA, el tema de este post. Este es el ángulo de ingeniería, y recibe una cobertura mucho menos honesta.

Si viniste buscando el sentido de contenido de las redes sociales, este post no es para ti. Si eres una persona dev preocupada de que tu código escrito por IA parezca correcto pero esté mal, sigue leyendo. Términos relacionados que verás por ahí: ai code slop, vibe slop, low-quality AI code.

6 señales de código con AI slop (una taxonomía)

No todo el código de IA es slop. Pero el slop tiene una huella bastante reconocible. Aquí tienes las 6 señales de código de IA de baja calidad con las que más me encuentro, cada una con un ejemplo rápido para que la detectes al vuelo:

  1. Parece correcto, falla en los bordes. La función va bien con la entrada de ejemplo, pero se rompe con una cadena vacía, una zona horaria, un número negativo o la última página de la paginación. Ejemplo: una función de promedio que nunca contempla el array vacío, así que divide por cero.
  2. Sobreingeniería / abstracción innecesaria. La IA construye una factory, un patrón strategy y una capa genérica para algo que necesitaba 5 líneas. Ejemplo: una interfaz más 3 clases para formatear una sola cadena de fecha.
  3. Ciego a las convenciones del repo. El nombrado, la estructura de carpetas y el manejo de errores no se parecen en nada al resto de la base de código. Ejemplo: el proyecto usa Result<T>, pero la IA lanza excepciones por todas partes.
  4. API / config / paquete alucinado. Llama a funciones que no existen, importa el nombre de paquete equivocado o usa una opción de configuración que fue eliminada. Ejemplo: import { parseDate } from 'date-fns' - solo que date-fns nunca exportó ese nombre.
  5. Tests que reflejan la implementación. Los tests se escriben para que pase exactamente el código que se acaba de generar, no para comprobar el comportamiento esperado. Ejemplo: hace mock del valor de retorno y luego hace la aserción sobre ese mismo mock.
  6. Hard-coding y valores mágicos. Números, URLs y claves se meten directo en la lógica en vez de en la config. Ejemplo: if (userId === 42), o un timeout de 3000 repartido por todas partes.

Por qué el AI slop es peor que la deuda técnica de siempre

La deuda técnica hecha por humanos suele ser visible: sabes dónde está el código chapucero porque tú (o alguien del equipo) tomó ese atajo a propósito. El AI slop es peor de tres maneras.

Primero, parece terminado. El código está bien formateado, tiene docstrings, tiene tests - todas las señales superficiales de "código de calidad" están ahí, así que tu cerebro baja la guardia. Segundo, se propaga de forma uniforme a escala de máquina. Un humano es chapucero en un punto; una IA es chapucera de la misma manera en 40 archivos en una sola tarde. Tercero, pasa todos los controles en los que tu equipo confía. Lint en verde, tipos en verde, tests en verde - porque los tests también los escribió la IA para reflejar ese mismo código.

Un número preocupante: una investigación del CSET (Center for Security and Emerging Technology, "Cybersecurity Risks of AI-Generated Code", 2024) encontró que casi la mitad de los fragmentos generados por IA contenían bugs o vulnerabilidades de seguridad explotables. En otras palabras: "funciona" no es lo mismo que "es seguro publicarlo".

Un escenario conocido: le pides a la IA que añada una pequeña funcionalidad y, "servicial", refactoriza tres archivos relacionados siguiendo un patrón que suena razonable. El PR está en verde, la revisión es un vistazo por encima porque "es solo un refactor", y se hace merge. Tres semanas después aparece un bug raro en un módulo que parecía no tener relación - porque ese patrón cambió en silencio el comportamiento de una función compartida. Pierdes medio día rastreándolo hasta el origen, solo para descubrir que la causa raíz es un trocito de slop de aspecto inofensivo de mucho antes.

El resultado: el AI slop se acumula más rápido que la deuda técnica tradicional, pero se esconde mejor - para cuando sale a la superficie, ya ha calado en varias capas. Y como se propaga por patrón, arreglar un punto rara vez basta: tienes que cazar cada copia que la IA repartió.

Un checklist para evitar el AI slop mientras haces vibe coding

Esto es el núcleo. En lugar de un vago "revisa con más rigor", lo reparto entre las 4 etapas de un ciclo de vibe coding. Si quieres, imprímelo y pégalo junto a tu monitor.

Antes de escribir el prompt

  • Escribe una especificación / criterios de aceptación claros antes de teclear el prompt. La IA no te lee la mente; rellena los huecos con suposiciones - y las suposiciones son donde nace el slop.
  • Dale tareas pequeñas y bien acotadas. Una función, un endpoint a la vez - fácil de revisar, fácil de pillar los errores.
  • Carga contexto: estándares de código, arquitectura, patrones existentes, tu archivo CLAUDE.md. El contexto pobre es la causa número uno de slop.

Mientras se genera el código

  • Dile a la IA que siga las convenciones del repo (nombrado, manejo de errores, estructura) - dilo claramente en el prompt, no esperes que lo adivine.
  • Verifica cada API / paquete / config contra la documentación actual para combatir la alucinación. Si la IA llama a una función que no has visto nunca, da por hecho que se la inventó hasta que se demuestre lo contrario.

Antes de hacer merge

  • Lee y entiende cada línea. La regla inquebrantable: nunca publiques código que no entiendes. Si no puedes explicar por qué existe una línea, no está lista.
  • Revisa lógica + contrato + arquitectura, no solo el "¿arranca?". Revisar código de IA es un trabajo distinto de revisar código humano - mira los detalles en cómo revisar código de IA como es debido.
  • Asegúrate de que los tests comprueban el comportamiento esperado, no la implementación que reflejan.
  • Mantén lint / tipos / cobertura como gates de CI - pero recuerda: un CI en verde no prueba que no haya slop.
  • Revisa las dependencias y licencias que la IA acaba de añadir.

Mantenimiento

  • Lleva un "catálogo de slop": anota los antipatrones que la IA tiende a crear en tu repo y luego reincorpóralos a tus plantillas de prompt y reglas de CI. Cuanto más "enseña" tu base de código a la IA, menos slop obtienes.

Términos relacionados para esta sección: AI code checklist, context engineering. Ningún checklist mata el 100% del slop - solo baja las probabilidades y el ritmo de acumulación.

Un ejemplo real: un trozo de slop y su arreglo

Vamos a hacerlo concreto con una función de descuento - el clásico "parece correcto pero está mal". Aquí está el primer intento de la IA:

// BEFORE - AI slop: looks right, wrong on several edge cases
function applyDiscount(price, discountPercent) {
 const finalPrice = price - (price * discountPercent / 100);
 return finalPrice.toFixed(2);
}

// applyDiscount(100, 20) -> "80.00" ✓ seems fine

Pasa el test de ejemplo, así que es fácil hacerle merge. Pero: (1) devuelve un string, no un número - rompiendo la aritmética en otros sitios; (2) no bloquea un descuento negativo o > 100; (3) choca con errores de redondeo de coma flotante en el dinero; (4) no maneja entradas inválidas. La versión corregida:

// AFTER - slop fixed: explicit contract, guarded edge cases
function applyDiscount(priceCents, discountPercent) {
 if (!Number.isInteger(priceCents) || priceCents < 0) {
 throw new Error('priceCents must be a non-negative integer (unit: cents)');
 }
 if (discountPercent < 0 || discountPercent > 100) {
 throw new Error('discountPercent must be within 0..100');
 }
 // Compute in cents (integers) to avoid floating-point rounding errors
 const discount = Math.round(priceCents * discountPercent / 100);
 return priceCents - discount; // returns a number (cents), not a string
}

El punto no es "el código corregido es más largo". Es que la versión con slop escondía cuatro suposiciones erróneas tras una superficie pulcra. Solo cuando lees para entender el contrato - el tipo de retorno, el rango de valores válidos, cómo se maneja el dinero - el slop se delata. Por eso "funciona" nunca es suficiente.

Context engineering - la raíz de menos slop

Arreglar slop después del merge es caro. Sale mucho más barato frenarlo desde el principio con context engineering: dale a la IA la materia prima correcta para que no tenga que adivinar. En concreto: estándares de código, un mapa de la arquitectura, los patrones que ya existen en el repo y un buen archivo CLAUDE.md que describa las convenciones de tu proyecto. Para profundizar en la mecánica, trata la context engineering como una habilidad en sí misma.

Un buen contexto convierte a la IA de "un gran dev en su primer día en la empresa" en "un dev que ya conoce la base de código". El mismo modelo, una calidad de salida radicalmente distinta - puramente por el contexto.

A escala de equipo, mantener el contexto y los estándares de proceso consistentes entre muchas personas es difícil. Un enfoque es un kit listo de skills, subagents y flujos de trabajo estándar para Claude Code - por ejemplo, el kit AgentKit para Claude Code empaqueta convenciones de revisión, estructura y patrones para que todo el equipo los comparta, de modo que el contexto y los estándares no se desvíen de una persona a otra. Si quieres echarle un vistazo directamente, puedes consultar los precios de AgentKit (20% de descuento por el enlace). Ninguna herramienta sustituye tu propio criterio - pero estandarizar el contexto es una palanca real para cortar el slop de raíz.

"Taste" - el criterio de ingeniería que la IA no puede reemplazar

Al final, prevenir el slop no se puede automatizar al 100%. Hace falta lo que los que están en la trinchera llaman taste (buen criterio técnico): saber cuándo no publicar lo que la IA acaba de producir, aunque "funcione". El taste es la capacidad de mirar un trozo de código y ver dónde va a doler dentro de seis meses.

La IA escribe el código; un humano es responsable de cada línea que se commitea. Cuando un bug llega a producción, nadie acepta un "pero así lo escribió la IA". El taste no se compra ni se puede invocar con un prompt - viene de leer de verdad, entender de verdad y hacerte cargo de verdad de lo que haces merge. Esa es la línea que separa el vibe coding del vibe slop.

Preguntas frecuentes (FAQ)

¿En qué se diferencia el AI slop en el código del AI slop de las redes sociales?

El AI slop de las redes sociales es contenido (vídeos, imágenes, artículos) producido en masa por IA - el sentido común que llevó a Merriam-Webster a elegir "slop" como Palabra del Año 2025. El AI code slop es código de IA de baja calidad: compila y pasa los tests, pero es estructuralmente superficial y pudre la base de código. Este post trata del segundo sentido.

¿El vibe coding siempre produce slop?

No. El vibe coding solo produce slop cuando le falta disciplina: prompts vagos, ningún contexto cargado y hacer merge de código que no has leído ni entendido. Un vibe coding disciplinado - specs claras, buen contexto, revisión cuidadosa - te da la velocidad de la IA manteniendo la calidad.

¿Cómo sé si mi código de IA tiene slop?

Comprueba las 6 señales: parece correcto pero falla en los bordes, sobreingeniería, ceguera a las convenciones del repo, API/paquete alucinado, tests que reflejan la implementación y valores mágicos hard-coded. Si no puedes explicar por qué existe una línea, probablemente sea slop.

¿Bastan los tests y el lint para frenar el slop?

No. El lint y los tests pillan errores de superficie, pero el slop a menudo se cuela porque los tests escritos por IA pueden limitarse a reflejar el mismo código. Aún tienes que leer y entender la lógica y comprobar el contrato y la arquitectura con ojos humanos.

¿Qué herramienta o kit ayuda a reducir el slop?

El arreglo de raíz es context engineering: cargar estándares de código, arquitectura y patrones a través de archivos como el CLAUDE.md. A escala de equipo, los kits listos de skills/subagents/flujos de trabajo estándar para Claude Code ayudan a mantener el contexto y los estándares consistentes. Pero las herramientas solo asisten - la decisión final sigue siendo tu criterio.

¿Debería publicar código de IA que todavía no entiendo?

No, en absoluto. Esta es la regla inquebrantable para evitar el slop: si no entiendes por qué funciona el código, no puedes mantenerlo, no puedes depurarlo y no puedes responder cuando se rompa. Lee hasta entenderlo y solo entonces haz merge.

Conclusión: vibe coding con disciplina

El AI slop no es una razón para evitar la IA - es una razón para usar la IA con disciplina. La fórmula es simple: la velocidad de la IA más la disciplina de revisión de un humano es igual a código limpio y rápido. Quita la segunda mitad y tienes slop, rapidísimo. Para seguir, repasa los fundamentos en qué es el vibe coding y afila tu control de calidad en cómo revisar código de IA como es debido. La IA escribe el código; el taste y la responsabilidad siguen siendo tuyos.

J

Jasmine

Autora · Jasmine Daily

La autora detrás de Jasmine Daily, anotando pensamientos, experiencias y momentos cotidianos. Honesta, sin prisa, imperfecta.

Jasmine Daily

Hay más esperando a ser leído.

Si este texto te llegó, explora algunas páginas más del diario.

Leer a continuación

Entradas relacionadas