Árbitros del código
Claude te entrega código que corre y pasa las pruebas, y por dentro está mal construido. Eso no se arregla revisando más: se arregla poniéndole dos árbitros que trabajan en momentos distintos. Anti-Slop lo rechaza en el lint; Thermos lo juzga cuando la rama ya está. Aquí están los dos, con sus comandos y sus prompts.
Lo primero
Las dos son gratis y de código abierto, y ninguna reemplaza a la otra.
Anti-Slop son reglas de linter: corren solas, no mandan reporte y rompen el paso cuando algo no cumple. Thermos son skills de revisión: leen los cambios de tu rama y te dicen qué está mal estructurado, con una rúbrica dura de verdad. Una es determinista, la otra es criterio. El error caro es pedir criterio antes de haber puesto la máquina.
Antes de instalar nada de aquí conviene saber que Claude Code ya trae sus propios comandos de revisión, explicados en Revisa tu código con Claude. Esta página no los repite: agrega lo que ninguno de ellos puede ser.
Las nueve secciones
El defecto que pasa las pruebas
Corre bien, pasa verde, y deja el proyecto peor que antes.
Una máquina y un juez
Dos formas de frenar, y ninguna de las dos hace el trabajo de la otra.
Anti-Slop, de verdad
Dieciocho reglas, un motor que quizá no tienes, y un modo de instalar raro.
Poner Anti-Slop en tu repo
Un comando trae la skill; la skill hace el resto sola.
Thermos son tres, no una
Una revisa bugs, otra revisa estructura, la tercera corre las dos.
Thermos en Claude Code
El comando bueno, y los dos detalles que lo dejan a medias.
Los prompts
Seis, uno por momento. Se copian y se pegan tal cual.
Dónde entra cada uno
Primero la máquina, después el juez. Al revés cuesta más caro.
La letra chica
Qué lenguajes, qué mantienes tú, y qué no hace ninguna de las dos.
Ficha
Anti-Slop y Thermos en Claude Code
- Nivel
- Avanzado
- Qué necesitas
- Un proyecto de TypeScript o JavaScript con git, y Claude Code instalado. Anti-Slop además pide Oxlint como linter.
- Cuánto toma
- Unos veinte minutos la primera vez. Después, un comando por rama.
- Cuesta
- Las dos son gratis y de licencia MIT. Lo que gastas es el uso de Claude cuando revisan.
- Verificado
- 14 de septiembre de 2026
01 · El problema
El defecto que pasa las pruebas
Le pides una función, te la entrega, la corres y sirve. Las pruebas pasan en verde. Y aun así el proyecto quedó peor: un archivo que creció doscientas líneas, un condicional nuevo metido en un flujo que no tenía nada que ver, tres tipos que dicen desconocido donde antes se sabía exactamente qué venía.
Nada de eso rompe una prueba. Las pruebas comprueban comportamiento, y el comportamiento está bien. Lo que se degradó fue otra cosa: qué tan difícil va a ser el siguiente cambio. Y eso no lo mide nadie hasta que duele.
Dos problemas distintos que se confunden
Lo que sí se ve
Bugs
- Rompen algo y alguien se queja.
- Una prueba los atrapa, o un usuario.
- Tienen un momento claro de descubrimiento.
- Se arreglan una vez.
Lo que no
Estructura
- No rompen nada hoy.
- Ninguna prueba los marca.
- Se descubren meses después, al querer cambiar algo.
- Se pagan cada vez que alguien toca ese archivo.
Esta página es sobre la columna de la derecha. La de la izquierda ya tiene quien la atienda.
Por qué revisarlo tú no alcanza
La respuesta obvia es leer más el código antes de aceptarlo. Funciona un rato y después no: el volumen es demasiado, la mayoría del diff se ve razonable línea por línea, y el problema casi nunca está en una línea — está en la forma del conjunto.
Lo que sí escala es no dejarlo a criterio. Poner una condición que el agente no pueda cruzar, y un revisor con una rúbrica más dura que la tuya al final del día.
Y antes de instalar nada: Claude Code ya trae sus propios comandos de revisión y de seguridad, que están explicados en Revisa tu código con Claude. Siguen sirviendo y esta página no los reemplaza — lo que agrega es lo que ninguno de ellos puede ser.
El slop de diseño y de prosa —lo que se ve hecho con IA— es otro problema y tiene su propia guía en Stop AI Slop. Aquí solo hablamos de código.
La idea
Un árbitro, no un consejo
- Un consejo se puede ignorar, y un agente que va rápido lo ignora.
- Un árbitro para el paso, y entonces el trabajo es volver a intentarlo bien.
- Las dos herramientas de esta página son árbitros, cada una a su manera.
02 · El frame
Una máquina y un juez
Hay dos maneras de frenar código mal construido, y se parecen tan poco que conviene no llamarlas igual. Una mide: aplica una regla escrita, siempre igual, sin interpretar nada. La otra juzga: lee el cambio completo y opina sobre si está bien planteado.
Ninguna puede hacer el trabajo de la otra. Una máquina no sabe si una abstracción vale la pena; un juez no puede correr en cada guardado sin que te cueste una fortuna.
Qué es
- Anti-Slop · la máquina
- Reglas de linter que corren sobre tu código.
- Thermos · el juez
- Skills de revisión que leen los cambios de tu rama.
Cómo decide
- Anti-Slop · la máquina
- Siempre igual. La misma entrada da el mismo resultado.
- Thermos · el juez
- Con criterio. Lee el contexto y puede cambiar de opinión.
Qué hace al encontrar algo
- Anti-Slop · la máquina
- Rechaza. Devuelve error y rompe el paso.
- Thermos · el juez
- Escribe un veredicto ordenado por gravedad.
Cuándo corre
- Anti-Slop · la máquina
- En cada revisión de código, antes del commit.
- Thermos · el juez
- Cuando la rama ya está, antes de integrarla.
Qué cuesta correrla
- Anti-Slop · la máquina
- Nada: es un programa local.
- Thermos · el juez
- Uso de Claude, porque hay que leer y pensar.
Qué no puede
- Anti-Slop · la máquina
- Opinar sobre si el diseño está bien planteado.
- Thermos · el juez
- Impedir que el código avance por su cuenta.
| Anti-Slop · la máquina | Thermos · el juez | |
|---|---|---|
| Qué es | Reglas de linter que corren sobre tu código. | Skills de revisión que leen los cambios de tu rama. |
| Cómo decide | Siempre igual. La misma entrada da el mismo resultado. | Con criterio. Lee el contexto y puede cambiar de opinión. |
| Qué hace al encontrar algo | Rechaza. Devuelve error y rompe el paso. | Escribe un veredicto ordenado por gravedad. |
| Cuándo corre | En cada revisión de código, antes del commit. | Cuando la rama ya está, antes de integrarla. |
| Qué cuesta correrla | Nada: es un programa local. | Uso de Claude, porque hay que leer y pensar. |
| Qué no puede | Opinar sobre si el diseño está bien planteado. | Impedir que el código avance por su cuenta. |
La fila que más se subestima es la tercera. Un linter no te manda un reporte para que lo leas después: devuelve error. Y como el agente corre el lint dentro de su propio ciclo, se topa con la pared y reescribe sin que tú digas nada.
Por qué rechazar funciona mejor que avisar
Un aviso depende de que alguien lo lea y decida hacerle caso. Un rechazo no: el paso falla, y la única forma de avanzar es cumplir. Cuando ese muro está dentro del ciclo del agente, el que lo cumple es el agente, en el momento, sin que tú intervengas.
Ese es el mecanismo completo. No es que las reglas sean mágicas: es que están del lado correcto de la puerta.
La regla de esta página
- Lo que se puede escribir como regla, se escribe como regla y se deja de discutir.
- Lo que pide criterio se le pide a un revisor con una rúbrica dura.
- Y el criterio se pide al final, no al principio: la §08 explica por qué.
03 · Herramienta 1
Anti-Slop: qué es de verdad
Es un juego de reglas de linter escritas a propósito para los vicios que la IA escribe de más: tipos que dicen «desconocido» para no comprometerse, conversiones encadenadas que fabrican una certeza que nadie comprobó, comprobaciones defensivas en lugares donde no hacía falta desconfiar.
Es gratis, licencia MIT, y lleva más de cuatro mil cuatrocientas estrellas. Su autor es claro sobre lo que es: su gusto y el de su equipo, no un estándar universal. Esa honestidad importa para la §09.
Ficha
dmmulroy/anti-slop
- Qué es
- Un complemento de reglas para un linter.
- Motor
- Oxlint. No ESLint.
- Lenguajes
- TypeScript y JavaScript, nada más.
- Reglas
- 18 generales, más 5 opcionales para proyectos que usan Effect.
- Cómo se distribuye
- Se copia dentro de tu repositorio. No hay paquete de npm.
- Licencia
- MIT
Requisito
Corre sobre Oxlint, y esto sí cambia las cosas
Oxlint es un linter más nuevo y mucho más rápido que el clásico. Anti-Slop está escrito para él y no funciona en ESLint. Si tu proyecto usa ESLint, no tienes que abandonarlo: los dos conviven sin pelearse, y lo normal es sumar Oxlint al lado.
Es el punto donde más gente se traba, y no porque sea difícil: porque no se lo esperaba.
Lo raro
No se instala: se copia adentro de tu repo
No hay un paquete que agregues a tus dependencias. El README lo dice sin rodeos: el proyecto está hecho para copiarse dentro del tuyo, leerse, y cambiarse hasta que coincida con lo que tu equipo considera correcto.
Suena incómodo y es deliberado. Una regla que no puedes desactivar deja de ser una herramienta y se vuelve una imposición; una que vive en tu repo la discutes, la ajustas y la borras. El costo: desde que la copias, el mantenimiento es tuyo.
Qué rechazan las dieciocho
Grupo 1
Certezas fabricadas
- Conversiones de tipo encadenadas, que inventan una garantía que nadie comprobó.
- Ensanchar un dato que ya se conocía para después volver a estrecharlo a la fuerza.
- Toda conversión sin un comentario al lado que explique por qué es segura.
Grupo 2
Contratos que no dicen nada
- Funciones que reciben o devuelven «desconocido» en vez de comprometerse con una forma.
- Diccionarios cuyos valores pueden ser cualquier cosa.
- Comprobaciones de tipo improvisadas donde debería haber una validación de verdad.
Grupo 3
Atajos en las pruebas
- Sustituir módulos enteros en lugar de separar bien la dependencia.
- Es la regla que más discusión genera, y se puede desactivar: el código es tuyo.
Grupo 4
Forma y rendimiento
- Recorrer una lista dos veces seguidas cuando una basta.
- Copiar el acumulador entero en cada vuelta de un recorrido.
- Espaciado ilegible entre bloques, que esta sí se corrige sola.
Las otras cinco reglas son solo para proyectos que usan Effect, una librería concreta. Viven aparte a propósito: quien no la usa no hereda sus opiniones de arquitectura.
La lista completa, con un ejemplo de código rechazado por cada regla, está en el README del proyecto. Vale leerlo antes de encenderlas todas.
04 · Instalar
Poner Anti-Slop en tu repo
Son dos movimientos y solo el primero es un comando. El segundo se hace hablando, y es donde pasa lo interesante: quien instala las reglas es el agente, leyendo tu proyecto y adaptándose a lo que ya tienes.
Paso 1 · Traer la skill que sabe instalarlo
npx skills add dmmulroy/anti-slop --skill install-anti-slopAgrega -g al final si la quieres disponible en todos tus proyectos y no solo en este. El comando te pregunta para qué agente la instalas: elige Claude Code.
Ojo
Ese comando todavía no cambió nada de tu código
Lo único que hizo fue dejar una skill disponible. Tu proyecto sigue igual, sin reglas nuevas y sin Oxlint. El segundo paso es pedirlo — con el prompt de la §07, o con tus propias palabras.
Lo que hace la skill cuando se lo pides
- Copia las reglas dentro de tu repositorio, en su propia carpeta.
- Instala Oxlint y su complemento de plugins; si ya tenías Oxlint, iguala las versiones en vez de romperlas.
- Mezcla la configuración nueva con la que ya tenías, sin borrar tus reglas.
- Enciende las dieciocho reglas generales, y las cinco de Effect solo si tu proyecto usa Effect.
- Corre el lint al final para comprobar que la instalación quedó funcionando.
Lo que te queda instalado
Una carpeta con las reglas dentro de tu repo —tuya, para leerla y cambiarla— y una configuración de linter que las llama. A partir de ahí, cada vez que se corra el lint las reglas corren: en tu terminal, en tu integración continua, y dentro del ciclo del agente cuando Claude verifica su propio trabajo.
Actualizar después
Como el código vive en tu repo, actualizar no es cambiar un número de versión: se le pide a la misma skill que traiga lo nuevo conservando tus cambios locales. Hace una mezcla de tres vías y te pregunta cuando algo choca. No te reemplaza la carpeta de golpe.
05 · Herramienta 2
Thermos son tres, no una
Lo soltó el equipo de Cursor dentro de su repositorio de plugins oficiales, con licencia MIT. Se cuenta casi siempre como «la skill de revisión brutal», y es un error útil de corregir: son tres skills y dos subagentes, y revisan cosas distintas.
thermo-nuclear-review
- Qué revisa
- Bugs, cosas que rompiste sin querer, seguridad, y permisos de funciones que se quedaron abiertos.
- Cuándo la quieres
- Antes de integrar cualquier rama que toque algo delicado.
thermo-nuclear-code-quality-review
- Qué revisa
- Estructura: abstracciones, tamaño de archivos, condicionales sueltos, límites entre capas.
- Cuándo la quieres
- Cuando lo que te preocupa es cómo quedó armado, no si funciona.
thermos
- Qué revisa
- Nada por su cuenta: lanza las dos anteriores en paralelo y junta los hallazgos en un solo veredicto.
- Cuándo la quieres
- Antes de un merge de verdad, cuando quieres las dos miradas.
| Skill | Qué revisa | Cuándo la quieres |
|---|---|---|
| thermo-nuclear-review | Bugs, cosas que rompiste sin querer, seguridad, y permisos de funciones que se quedaron abiertos. | Antes de integrar cualquier rama que toque algo delicado. |
| thermo-nuclear-code-quality-review | Estructura: abstracciones, tamaño de archivos, condicionales sueltos, límites entre capas. | Cuando lo que te preocupa es cómo quedó armado, no si funciona. |
| thermos | Nada por su cuenta: lanza las dos anteriores en paralelo y junta los hallazgos en un solo veredicto. | Antes de un merge de verdad, cuando quieres las dos miradas. |
La rúbrica, en español
Regla dura
Nada empuja un archivo de menos de mil líneas a más de mil
Si tu cambio cruza esa marca, la revisión se para y pregunta si no habría que partir el archivo primero. Solo se perdona con una razón estructural buena y un archivo que siga siendo legible.
Regla dura
Un condicional suelto en un flujo ajeno es un problema de diseño
No es un detalle de estilo. Si el cambio mete un «si acaso» raro en medio de algo que no tenía nada que ver, la revisión pide mover esa lógica a su propio lugar en vez de enredar el camino existente.
La favorita
Code judo: borrar complejidad en vez de reacomodarla
La rúbrica empuja a buscar la reformulación que hace desaparecer ramas, ayudantes y capas enteras. No le basta con «esto podría estar más limpio»: pide la versión que deja el código como si siempre hubiera tenido que ser así.
Regla dura
Cada cosa en la capa que le toca
Marca la lógica de una función concreta que se filtró a un módulo compartido, y los ayudantes hechos a mano para algo que el proyecto ya resolvía en otro lado.
Regla dura
Los límites de tipos se hacen explícitos
Cuestiona la opcionalidad que no hacía falta, los «cualquier cosa» y las conversiones que tapan un supuesto sin nombrarlo. Donde hay un valor por defecto silencioso, pregunta si no debería haber un límite claro.
El tono
Directa y exigente, y eso es la mitad del valor
La skill trae instrucciones explícitas de no suavizar: si el código deja el proyecto peor, lo dice así. Y se prohíbe a sí misma el comentario inofensivo — nada de «tal vez renombra esto» cuando el problema es estructural.
Las tres skills y los dos subagentes viven en cursor/plugins, en la carpeta thermos. Están escritas en texto plano: se pueden leer en diez minutos y vale la pena.
06 · Instalar
Thermos en Claude Code
El plugin está pensado para Cursor, donde se instala con un comando propio. En Claude Code se traen las skills con el mismo instalador de la §04, y funcionan igual — son archivos de texto con instrucciones, no código atado a un editor.
Las tres skills de una vez
npx skills add cursor/plugins -a claude-code \
--skill thermos \
--skill thermo-nuclear-review \
--skill thermo-nuclear-code-quality-reviewAntes, si quieres ver qué más trae ese repo
npx skills add cursor/plugins --listEl repositorio de Cursor trae 88 skills en total; el comando de arriba se lleva solo las tres. Agrega -g si las quieres en todos tus proyectos.
Si viste otro comando por ahí
El de una sola ruta instala una de las tres
Circula una versión que apunta directo a la carpeta de una skill. Funciona —se probó— pero se trae solo la de calidad, y te quedas sin la de bugs y sin la que corre las dos. Si ya lo hiciste, corre el de arriba encima: se suman, no se pisan.
Dos detalles que no salen en ninguna documentación
Detalle 1
La orquestadora llama a dos subagentes que no vienen en el paquete
El instalador trae skills, y los subagentes son otra cosa. La skill thermos —la que corre las dos revisiones en paralelo— invoca dos subagentes que viven en la carpeta del plugin y que el comando no copia. En Claude Code no los va a encontrar.
Tienes dos salidas, las dos buenas: usar las dos skills de revisión por separado, que están hechas para funcionar solas, o copiar a mano los dos archivos de la carpeta de agentes del plugin a tu carpeta de agentes. El último prompt de la §07 hace el trabajo de la orquestadora sin depender de ninguna de las dos cosas.
Detalle 2
No se disparan solas, y es a propósito
Las tres vienen con la invocación automática apagada. Claude no las va a usar porque le pareció buena idea: hay que llamarlas por su nombre. Tiene sentido — una revisión así de larga y así de cara no debería arrancar sola a media tarea. Los prompts de la siguiente sección ya las nombran.
Cómo saber que quedaron
- Abre Claude Code en el proyecto y pide la lista de skills disponibles.
- Tienen que aparecer las tres por su nombre completo.
- Si instalaste sin -g, solo están en el proyecto donde corriste el comando.
El instalador es el CLI abierto de skills, el mismo que usa media bóveda. Es de Vercel Labs y tiene licencia MIT.
07 · El uso
Los prompts
Seis, en el orden en que se usan. Los dos primeros son de Anti-Slop y los cuatro siguientes de Thermos. Los de Thermos nombran la skill a propósito: si no la nombras, no se activa y te devuelve una revisión normal sin la rúbrica dura.
Con Anti-Slop
1 · Instalarlo en este repositorio
El que va después del comando de la §04. La skill hace el trabajo; tú le pides que te explique qué tocó, que es lo que te deja poder revisarlo.
Instala anti-slop en este repositorio usando la skill install-anti-slop. Antes de tocar nada, dime: - si el proyecto ya usa Oxlint o si hay que agregarlo, y si ya tiene otro linter que se vaya a quedar conviviendo - si usa Effect, para saber si entran también las reglas de Effect Al terminar, explícame en español y en una lista corta: 1. qué archivos creaste o modificaste, y qué carpeta quedó con las reglas 2. qué dependencias instalaste y en qué versión 3. cuántas reglas quedaron encendidas 4. el resultado de correr el lint una vez No arregles todavía nada de lo que el lint rechace. Solo instala y reporta: quiero ver el tamaño del problema antes de que empieces a cambiar código.
2 · Arreglar lo que rechazó, sin cambiar comportamiento
La primera corrida suele traer bastante. Este prompt pone el límite que importa: arreglar la forma sin tocar lo que el código hace.
Corre el lint y arregla todo lo que anti-slop esté rechazando. Reglas del trabajo: - el comportamiento no cambia. Si para cumplir una regla tendrías que cambiar lo que el código hace, párate y pregúntame. - nada de silenciar reglas con comentarios de excepción para salir del paso. Si una regla te parece equivocada para este proyecto, dímelo y lo discutimos: el código de las reglas es nuestro y se puede editar. - de a poco: arregla, corre el lint, y sigue. No una tanda gigante. Cuando termines, muéstrame el lint en limpio y dime qué reglas fueron las que más aparecieron. Eso es lo que me dice qué está aprendiendo mal el proyecto, no solo qué se arregló hoy.
Con Thermos
3 · Revisión de estructura sobre la rama
La rúbrica dura: mil líneas, condicionales sueltos, code judo. Es la que usas cuando lo que te preocupa es cómo quedó armado.
Usa la skill thermo-nuclear-code-quality-review sobre los cambios de esta rama contra main. Antes de empezar, junta el diff completo y el contenido de los archivos que toca, para que no tengas que adivinar nada. Quiero los hallazgos en español, ordenados por gravedad, y cada uno con: - el archivo y la línea - qué está mal según la rúbrica, con la regla concreta que lo señala - el arreglo que propones, y si es code judo dilo: quiero saber cuáles borran complejidad y cuáles solo la mueven de lugar No cambies ni un archivo todavía. Esta vuelta es solo el veredicto.
4 · Revisión de bugs y seguridad sobre la rama
La otra mitad de Thermos, y la que casi nadie instala. Busca lo que rompiste sin querer, agujeros de seguridad y permisos que quedaron abiertos.
Usa la skill thermo-nuclear-review sobre los cambios de esta rama contra main. Junta el diff y el contenido de los archivos tocados antes de juzgar nada. Busca sobre todo: - cosas que esta rama rompe sin que ninguna prueba se entere - cambios que rompen algo para quien ya usaba esto - problemas de seguridad: datos que se filtran, entradas que nadie valida - permisos de funciones nuevas que se quedaron abiertos cuando no deberían En español, ordenado por gravedad, y con el archivo y la línea de cada uno. Si algo no lo puedes confirmar sin correr el código, dilo en vez de afirmarlo.
5 · Las dos a la vez, con un solo veredicto
Lo que hace la skill orquestadora, pero escrito para que funcione sin sus subagentes. Este es el que usas antes de integrar de verdad.
Antes de integrar esta rama quiero las dos revisiones de Thermos. Junta una sola vez el diff contra main y el contenido de los archivos que toca. Después haz dos pasadas sobre ese mismo material: 1. con la skill thermo-nuclear-review, para bugs, cosas rotas y seguridad 2. con la skill thermo-nuclear-code-quality-review, para estructura Al final dame UN solo veredicto en español, no dos reportes pegados: - junta los hallazgos repetidos en uno, y si las dos pasadas señalan lo mismo, súbelo de prioridad: eso es lo más sólido que vas a encontrar - si se contradicen, dilo y toma partido, con tu razón - ordénalo por lo que más duele, no por el orden en que apareció - cierra con una sola línea: se integra, o no se integra todavía
6 · Aplicar lo que salió, por partes
Thermos propone y no arregla. Este es el prompt de después, y el límite que trae es el que evita que una revisión buena se convierta en un refactor que nadie pidió.
De los hallazgos de la revisión, aplica solo los de gravedad alta. Uno por uno, no todos de golpe. Para cada uno: - dime qué vas a cambiar antes de cambiarlo - hazlo sin tocar comportamiento: las pruebas que pasaban siguen pasando - corre el lint después de cada arreglo Los de gravedad media y baja los dejamos anotados y no los tocas hoy. Si un hallazgo pide reestructurar algo grande, no lo hagas: descríbeme el cambio, dime qué archivos moverías y cuánto crece la rama, y lo decido yo.
Un detalle que ahorra dinero
Las revisiones de Thermos leen el diff entero y los archivos completos que toca. En una rama grande eso es mucho de leer, y se paga. Por eso conviene pedirlas sobre ramas chicas y frecuentes, no sobre una de dos semanas — y por eso la §08 pone el lint antes.
08 · El orden
Dónde entra cada uno
Las dos herramientas no compiten por el mismo momento, y ponerlas en el orden correcto cambia lo que cuestan. El lint primero, la revisión después.
Mientras Claude escribe · Anti-Slop
Las reglas corren cada vez que se corre el lint, y el agente corre el lint dentro de su propio ciclo de verificación.
Lo que no cumple se rechaza ahí mismo y se reescribe sin que tú digas nada. No hay nada que revisar: o pasa, o no avanza.
Antes del commit · Anti-Slop otra vez
Correr el lint a mano antes de guardar el cambio. Es gratis y tarda segundos.
Todo lo que se cierre aquí es trabajo que el revisor caro ya no va a tener que mirar.
Cuando la rama está · Thermos
Con todo el cambio junto es cuando tiene sentido preguntar si estaba bien planteado. Antes no hay nada que juzgar.
Si la rama toca algo delicado, las dos revisiones. Si es un cambio chico de estructura, la de calidad sola.
Antes de integrar · aplicar, y volver al lint
Se aplican los hallazgos graves, se corre el lint otra vez, y recién entonces se integra.
Los hallazgos medios se anotan. Arreglarlos todos el mismo día es cómo una revisión buena se convierte en un refactor que nadie pidió.
Por qué en ese orden y no al revés
Revisión primero
Le pides la revisión a una rama sin lint. La revisión vuelve con treinta hallazgos, veinte de ellos sobre conversiones de tipo y tipos sin comprometerse. Leíste, pagaste y decidiste sobre veinte cosas que una regla marcaba sola.
Lint primero
Corres el lint primero y esos veinte no llegan a existir. La revisión vuelve con diez hallazgos, todos de los que sí necesitaban un criterio. Es la misma herramienta y el mismo día; cambió qué le diste para leer.
La regla corta
- Todo lo que una regla pueda decidir, que lo decida la regla.
- Al juez se le pregunta lo que solo un juez puede contestar.
- Ramas chicas y frecuentes: una revisión sobre dos semanas de cambios cuesta mucho y acierta menos.
09 · Antes de empezar
La letra chica
Seis cosas que cambian lo que puedes esperar. Ninguna es motivo para no usarlas; todas son mejores sabidas antes.
Alcance
Anti-Slop es solo TypeScript y JavaScript
Si tu proyecto es Python, Go o Rust, esa mitad de la página no te sirve. Thermos sí: es una rúbrica escrita en texto y funciona sobre cualquier lenguaje, porque el que lee es Claude.
Requisito
Y pide Oxlint como motor
No corre sobre ESLint. Los dos linters conviven sin problema, así que no tienes que abandonar el que ya tenías, pero es un paso extra que conviene saber antes de empezar y no a medio camino.
Mantenimiento
Las reglas viven en tu repo, y son tuyas
Eso te deja cambiarlas y apagar la que no aplique, que es la gracia. También significa que actualizar no es subir un número de versión: la skill trae lo nuevo y hace una mezcla que te pregunta cuando algo choca.
Honestidad
No es un estándar, es el gusto de su autor
El README lo dice sin adornos: son las reglas que él usa con su equipo, no una norma de la industria. Varias son discutibles a propósito. Léelas antes de encenderlas todas y apaga las que no vayan con tu proyecto.
Límite
Thermos propone, no arregla
Te devuelve un veredicto, no un commit. Aplicar es un paso aparte, y conviene que lo sea: la rúbrica es ambiciosa y aceptar todo de corrido convierte una revisión en un refactor que nadie pidió. El prompt 6 de la §07 pone ese límite.
Costo
Las herramientas son gratis, la revisión no
Las dos son MIT y no cobran nada. Lo que se paga es el uso de Claude cuando Thermos lee el diff entero y los archivos completos. En una rama grande es bastante: ramas chicas y frecuentes salen más baratas y aciertan más.
De pilón
En el mismo repo de Cursor hay una tercera, más simple
Se llama deslop y hace una sola cosa: limpiar del diff lo que la IA escribió de más —comentarios que no aportan, comprobaciones defensivas donde no hacía falta desconfiar, conversiones a «cualquier cosa» puestas para esquivar un error de tipos, y anidamiento que se resuelve saliendo antes.
Se instala igual, agregándole --skill deslop al comando de la §06. No reemplaza a ninguna de las dos: es una pasada de limpieza, sin rúbrica y sin rechazar nada.
Si lo que quieres es que Claude escriba menos código de entrada, en vez de filtrarlo después, eso vive en Ponytail y es un problema distinto del de esta página.
Sobre los datos de esta página
Las estrellas, la cuenta de reglas, las licencias y los dos comandos de instalación se verificaron contra los repositorios y el registro de paquetes el 14 de septiembre de 2026, y los comandos se corrieron. Cuando los README cambien, ganan los README.
Guía de la bóveda
Esta guía es una de las gratuitas de la bóveda.
Lo que cambia después de esto
Dejas de revisar a mano código que no escribiste. Lo que se puede escribir como regla queda escrito y deja de discutirse; lo que pide criterio se le pregunta a una rúbrica más dura que la tuya, y se pregunta al final. Tú vuelves a decidir, que es lo único que no se delega.
Lo que esta guía no repite
Revisa tu código con Claude
Los comandos de revisión y de seguridad que Claude Code ya trae de fábrica. Empieza por ahí antes de instalar nada de fuera.
Ponytail
El problema de antes: que Claude escriba menos código de entrada, en vez de filtrar de más después.
Stop AI Slop
El otro slop, el que sí se ve: diseño y escritura que delatan que lo hizo una IA. Diez repos, ninguno de código.
Mejores prácticas de Claude Code
Cómo trabajar con el agente en general, más allá de la revisión.
Los repositorios
Los dos son gratis y de licencia MIT. Vale abrir el primero antes de instalarlo: el README trae un ejemplo de código rechazado por cada regla, y es la mejor forma de decidir cuáles enciendes.
Lo nuevo sale primero en Instagram
Ahí publico lo que voy probando antes de que se vuelva guía.
@soyenriquerocha
Lo que promete esta página
Que los dos comandos de instalación se corrieron antes de publicarse, y que las estrellas, las licencias y la cuenta de reglas salen de los repositorios el 14 de septiembre de 2026. Lo que no promete es que las reglas de Anti-Slop sean las correctas para tu proyecto: su propio autor dice que son su gusto, no un estándar.