Detecta los atajos que los agentes toman antes de que el trabajo llegue a ti.

Una prueba omitida para obtener aprobación, un error ocultado, un esqueleto dejado atrás, una comprobación de tipo silenciada. Anti-slop verifica cada cambio que hace un agente y lo envía de vuelta al agente desarrollador con cada hallazgo.

TareaAplique códigos de cupón al finalizar la compraEn revisión
Barreras de calidad
Desarrollador calidad de códigoIntentar 2Superado
Anti-slop
Sin nueva deuda técnicaSuperado
0 bloqueando · 0 introducidos · 1 modificados · 14 existentes
Desarrollador calidad de códigoIntentar 1Bloqueado · enviado a Desarrollador
Anti-slop
Sin nueva deuda técnicaNecesita reparación
2 bloqueando · 2 introducidos · 1 modificados · 14 existentes
  • Prueba omitidasrc/checkout/coupon.test.ts:88it.skip('rejects an expired coupon', …)
  • Error ignoradosrc/checkout/apply-coupon.ts:41} catch {}
Problemas encontrados
  • SolucionadoPrueba omitidaAnti-slop
  • SolucionadoError ignoradoAnti-slop

La vista de tarea es una recreación del portal de Coroid. La tarea, los archivos y los hallazgos en ella son ilustrativos.

Reglas
106
Familias
13
Reglas que bloquean por defecto
44
Hallazgos existentes que bloquean un cambio
0

Qué busca

Las reglas se agrupan en familias. Cada regla bloquea, aconseja o solo registra, y un propietario puede modificar eso para la organización o para un proyecto.

Pruebas
Pruebas enfocadas u omitidas, pruebas eliminadas, aserciones quitadas o debilitadas, pruebas que no pueden fallar y reintentos que ocultan una prueba inestable.
  • .only
  • .skip
  • expect(true).toBe(true)
Supresiones
Nuevas desactivaciones de linter, errores de tipo ignorados, conversiones a 'any' y código excluido de la cobertura.
  • @ts-ignore
  • as any
  • eslint-disable
Compilación e CI
Pasos de prueba eliminados o permitidos para fallar, umbrales de cobertura reducidos, ejecuciones de prueba que aprueban sin pruebas, ganchos de confirmación omitidos y salida de compilación comprometida.
  • continue-on-error: true
  • --passWithNoTests
Evidencia de prueba
Una ejecución de prueba que no corrió nada, menos pruebas que la última ejecución exitosa, una ejecución parcial reportada como completa y resultados en caché presentados como una nueva ejecución.
  • Tests: 0 total
  • --onlyChanged
Código de producción
Implementaciones de marcador de posición, código de depuración, notas como 'en una implementación real', instrucciones para personas, datos ficticios y código de producción que importa código de prueba.
  • throw new Error('Not implemented')
  • debugger;
Manejo de errores
Errores ocultados o disfrazados tras un valor predeterminado, comprobaciones de permisos que permiten acceso aunque fallen y reintentos sin límite.
  • except: pass
  • .catch(() => {})
Seguridad
Secrets codificados de forma permanente, verificación TLS desactivada, mecanismos de autenticación eliminados, políticas CORS con comodines y credenciales, y consultas SQL generadas a partir de cadenas de texto.
  • rejectUnauthorized: false
  • verify=False
Arquitectura
Nuevos ciclos de importación, importaciones entre límites declarados, bloques duplicados, código que el cambio dejó sin usar y nuevas copias de patrones retirados.
Dependencias
Un cambio en el manifiesto sin su archivo de bloqueo, una segunda biblioteca para una tarea que ya realiza otra, versiones sin fijar y actualizaciones que la especificación no solicitó.
  • "latest"
Almacenamiento en caché
Claves de caché sin el inquilino, cachés en memoria que nunca expiran y valores de tiempo de compilación que deberían leerse al ejecutar el código.
Comentarios
Comentarios que repiten la línea siguiente, describen la edición, matizan o contradicen el código que está al lado.
  • // Updated to
  • // should work
Ámbito del cambio
Archivos fuera de lo que toca la especificación, cambios solo de formato y renombrados que la tarea no necesitaba.
Seguimiento del agente
Lo que hizo el agente en el proceso, como eliminar la prueba que estaba fallando o cambiar un valor esperado por lo que imprimió la ejecución fallida.

Solo lo que introduce el cambio se bloquea

La mayoría de los repositorios ya contienen algunos de estos patrones. Anti-slop clasifica cada hallazgo según su origen, para que la deuda existente nunca bloquee trabajo no relacionado.

Introducido
Nuevo en este cambio. Un hallazgo de una regla bloqueante envía el cambio de vuelta al agente desarrollador.
Toque
Ya existía, en una línea o función que el cambio modifica. Se registra y se corrige cuando tu disciplina de cambios lo solicita.
Existente
En otra parte del repositorio. Se registra como deuda en Factory, donde puedes crear una tarea para corregir los hallazgos de una regla.

Mover código no cuenta como introducirlo. Copiarlo sí.

Usted decide hasta dónde puede extenderse un cambio

La disciplina de cambios indica al agente desarrollador qué puede limpiar mientras trabaja.

  1. QuirúrgicoSolo lo que necesita la especificación. Otros problemas se reportan, pero no se corrigen.
  2. EquilibradoPredeterminadoTambién corrige pequeños problemas en las líneas que el cambio toca de todos modos.
  3. RestauradorTambién limpia los hallazgos dentro de las funciones que el cambio modifica.

El agente desarrollador trabaja bajo las mismas reglas

Anti-slop no es solo un veredicto al final. El agente recibe las reglas mientras escribe el cambio y no puede ignorarlas.

  1. El agente comienza con tu disciplina de cambios y los patrones que has puesto en cuarentena, cada uno con el reemplazo a usar en su lugar.
  2. Detecta las reglas rápidas tras cada edición y tiene una oportunidad para corregir los hallazgos bloqueantes antes de que se ejecute el control de calidad.
  3. Los agentes no pueden aceptar sus propios hallazgos. Cuando un agente indica que una prueba es incorrecta y la modifica, un revisor debe aprobar ese cambio.
  4. Un archivo del repositorio, .coroid/anti-slop.yml, puede agregar reglas y excluir rutas generadas. Se lee desde la base del cambio, por lo que un cambio no puede debilitar sus propias reglas.

Haga que los agentes que ya ejecuta cumplan con las mismas reglas

Los ingenieros que trabajan con sus propios agentes de programación también pueden utilizar las reglas de su organización.

AGENTS.md snippet
Descargue una sección con las instrucciones para sus agentes, incluyendo la disciplina de cambios del proyecto, los patrones aislados y las reglas más importantes.
Coroid MCP server
anti_slop_rules describe su política publicada y anti_slop_scan analiza una rama de un proyecto sincronizado. Ambos son de solo lectura.
Coroid Check en solicitudes de extracción
Con los controles de pull request activados, el mismo control se ejecuta en las solicitudes de extracción de GitHub que abren sus desarrolladores y marca cada hallazgo en su línea correspondiente.

Se probó primero en nuestro propio código

Coroid fue creado por una persona y cien agentes, por lo que anti-slop se ejecutó en el propio repositorio de Coroid antes de hacerlo en el de cualquier otra persona.

Un análisis de cada archivo fuente

Escaneamos todos los archivos fuente 11.536 en el repositorio de Coroid como si un agente los hubiera escrito recientemente. El escaneo detectó 6 patrones que las reglas identificaron erróneamente. Los corregimos y la cantidad de hallazgos bloqueantes pasó de 5366 a 2253.

Lo que sigue bloqueando son los elementos que las reglas deben detectar, como una nota dejada en nuestro código de notificaciones: «En una implementación real, se obtendría el token FCM del usuario».

Reglas que evalúa un modelo

Dos reglas solicitan al modelo que analice una línea a la vez: una comprobación defensiva para detectar elementos que el código ya excluye y un comentario que contradice al código circundante. Solo brindan recomendaciones. De 600 las líneas candidatas procedentes de cambios fusionados reales, identificaron ninguna de forma incorrecta, y su coste máximo es 0,0015 US$ por escaneo.

Actívelo en Control de Calidad

Los propietarios y administradores activan anti-slop como opción predeterminada de la organización o para un proyecto concreto. La siguiente ejecución de ese proyecto lo incluirá.

  1. Abra Control de Calidad y seleccione el valor predeterminado de la organización o un proyecto.
  2. Activa anti-slop. Añade cinco expectativas a la política.
  3. Seleccione la disciplina de cambios y los grupos que deben bloquear. Al desactivarlo, se conservarán estos ajustes para la próxima vez.

Las cinco expectativas que establece

  • Las pruebas siguen validando el cambio
  • Nada sin terminar ni solo para pruebas llega a producción
  • Sin nueva deuda estructural
  • El cambio se mantiene dentro del alcance y se integra con este código base
  • Las nuevas dependencias son reales y reputables
Leer la guía de anti-slop
Control de calidad
Seleccione los criterios de validación para cada proyecto. Los cambios se aplican al trabajo nuevo en cuanto los configure.
Tienda onlineConfiguración personalizada
Se ejecuta durante la fase de QA de las tareas, en los pull requests y en la validación de lanzamientos.
Controles en cada cambio
Un cambio que no apruebe un control vuelve al desarrollador antes de que cualquier persona lo revise.
  • Anti-slopDevuelve un cambio al equipo cuando debilita las pruebas, oculta errores, incluye marcadores de posición o genera deuda técnica.
  • Pruebas unitariasLocaliza y ejecuta las pruebas unitarias del repositorio en cada modificación.
  • Pruebas en navegador2 de 3difiere de la configuración predeterminadaEjecuta sus flujos de navegador contra la modificación realizada.
  • Traduccionesdifiere de la configuración predeterminadaVerifica que las cadenas de texto modificadas estén traducidas y que sus marcadores de posición y formas plurales coincidan correctamente.
  • Comprobaciones del repositorioEjecuta sus propios comandos, como formatado, comprobación de tamaño de archivos, migraciones, pruebas de integración y análisis de seguridad.
QA
  • Control de calidad exhaustivoThoroughEl control de calidad recopila pruebas y capturas de pantalla en tiempo real conforme a la Especificación. Si está desactivado, el proceso pasa a QA estándar.

Revise el trabajo que ya ha sido validado.

Active anti-slop para un proyecto y vea lo que devuelve antes de proceder.