Construido sobre el trabajo de grandes mantenedores
Agnes no analiza tu código por sí solo. Cada informe y cada puntuación se basa en los resultados de herramientas de código abierto, escritas y mantenidas por personas que dedican su tiempo a mejorar el ecosistema frontend. Gracias a cada desarrollador, mantenedor y colaborador que hay detrás. Sin su trabajo, Agnes no existiría.
Si estos proyectos también te resultan útiles, dales una estrella, informa de errores, contribuye o patrocina a sus mantenedores.
Herramientas que leen tu código
Se ejecutan dentro de un contenedor cerrado y sin red. Cada una alimenta una parte de la puntuación.
Oxlint
MIT- Code smells
Un linter muy rápido del proyecto Oxc. Agnes lo usa para señalar patrones de código sospechosos o propensos a errores, ciclos de importación y atajos de TypeScript arriesgados como any, en JavaScript, TypeScript y los bloques script de los archivos Vue, Svelte y Astro.
Biome
MIT OR Apache-2.0- Code smells
Una cadena de herramientas rápida para la web. Agnes ejecuta su linter en tres pasadas: problemas de estilo en CSS y HTML, código demasiado complejo, y componentes Vue, Svelte y Astro, en los que revisa las plantillas, el código sin usar y la complejidad de sus scripts. También revisa la accesibilidad en Astro.
FTA
MIT- Code smells
El Fast TypeScript Analyzer, escrito en Rust. Valora lo mantenible que es cada archivo según su complejidad y su tamaño.
Knip
ISC- Code smells
Encuentra archivos, exports y dependencias sin usar, para que el código muerto no se acumule sin que nadie lo note.
jscpd
MIT- Duplicación
Un detector de copiar y pegar. Encuentra bloques de código duplicado en tu proyecto e indica cuánto se repite.
Stylelint
MIT- Code smells
Un linter de CSS moderno. Agnes ejecuta sus reglas recomendadas para detectar errores de CSS como selectores y propiedades duplicados o propiedades desconocidas, en archivos CSS, SCSS, Sass y Less y en los bloques style de los componentes Vue, Svelte y Astro.
html-validate
MIT- Code smells
Un validador de HTML sin conexión con comprobaciones de accesibilidad. Señala marcado roto, textos alternativos o atributos de idioma que faltan, y problemas similares.
axe-core
MPL-2.0- Accesibilidad
Un motor de reglas de accesibilidad de Deque. Cuando las comprobaciones de accesibilidad están activadas, Agnes lo ejecuta sobre tus páginas HTML estáticas para encontrar etiquetas que faltan, textos alternativos que faltan, ARIA no válido y problemas similares. Sin un navegador no puede valorar el contraste de color, así que eso queda fuera.
jsdom
MIT- Accesibilidad
Una implementación en JavaScript del DOM del navegador. Permite que axe-core lea tu HTML en un contenedor normal, sin navegador y sin ejecutar los scripts de tu página.
ESLint
MIT- Accesibilidad
El linter de JavaScript ampliable con plugins. Para las comprobaciones de accesibilidad, Agnes lo ejecuta sobre tus componentes con el plugin de accesibilidad de Vue y las reglas de accesibilidad de plantillas de Angular.
Angular ESLint
MIT- Code smells
- Accesibilidad
Las reglas de lint propias de Angular, ejecutadas por ESLint. Agnes usa sus reglas recomendadas para señalar plantillas y componentes que probablemente estén mal, como pipes async negados o un two-way binding mal escrito, y código que aún no ha pasado al estilo actual de Angular, en plantillas externas e inline y en el TypeScript. Con las comprobaciones de accesibilidad activadas, también ejecuta las reglas de accesibilidad de plantillas de Angular.
eslint-plugin-vue
MIT- Code smells
- Seguridad
El linter oficial de Vue. Agnes ejecuta una selección de sus reglas, las que oxlint y Biome no cubren ya: props que un componente modifica, refs usadas sin .value, variables de plantilla sin usar, directivas no válidas y props por defecto no válidas. También señala v-html, que muestra HTML sin procesar, como un hallazgo de seguridad para revisar.
eslint-plugin-svelte
MIT- Code smells
- Seguridad
El linter oficial de Svelte. Agnes ejecuta una selección de sus reglas que el compilador de Svelte no cubre ya: bloques each sin clave, mal uso de los stores, directivas duplicadas y objetos mostrados como texto. También señala {@html} y los enlaces con target="_blank" como hallazgos de seguridad para revisar.
Svelte
MIT- Code smells
- Accesibilidad
El compilador de Svelte. Avisa de problemas de accesibilidad en los componentes y de errores de reactividad y estilos sin usar; Agnes lee esos avisos sin generar ni ejecutar código.
Secretlint
MIT- Seguridad
Busca secretos subidos al repositorio, como claves de API, tokens y claves privadas. Agnes indica dónde se encontró uno, nunca el secreto en sí.
Datos públicos que consultamos
Además de las herramientas anteriores, dos servicios públicos nos informan sobre tus dependencias. Solo se les envían nombres y versiones de paquetes, nunca tu código.
OSV
- Dependencias
La base de datos de vulnerabilidades de código abierto. Agnes comprueba cada paquete de tu lockfile con ella e informa de los avisos conocidos y de si existe un parche.
npm registry
- Dependencias
El registro de paquetes nos dice cuándo una dependencia que usas está obsoleta, desactualizada o lleva mucho tiempo sin actualizarse.
Cómo se calcula la puntuación
Cada categoría se convierte en una puntuación de 0 a 100. La puntuación global es una combinación ponderada de las cuatro.
- 35%Code smells
- 35%Dependencias
- 15%Seguridad
- 15%Duplicación
Si una categoría no se puede analizar, por ejemplo porque no hay lockfile, se deja fuera y los pesos de las demás se aumentan en proporción.
La accesibilidad y la cobertura de tests medida son opcionales en cada proyecto. Cuando se activan, entran en la combinación con un peso de alrededor del 10 % y el 15 %, y las demás se reducen en proporción.