MITBenAHammond/code-auditor-mcp

Code Auditor

Code Auditor lee todo tu código y te dice qué está mal — incluidos los problemas que solo existen entre archivos. Instala una habilidad y tu agente lo mantiene así en cada edición.

Dos comandos para instalarlo en todas partes:

npm install -g code-auditor-mcp
code-audit install --agent all

Claude Code, Cursor, Codex, Gemini CLI y cualquier agente con SKILL.md. Hooks bloqueantes en Claude Code y Codex; informes MCP en el resto. code-audit install --list muestra la matriz.

Cómo funciona

¿Heredaste un código? ¿Vuelves a uno que no tocas hace meses? ¿Construiste rápido y ahora quieres saber qué hay dentro? Audita una vez para ver el panorama completo y deja que tu agente lo mantenga limpio en cada edición. En ambos casos, el análisis es determinista.

Limpia tu código

code-audit audit

Ejecútalo sobre cualquier proyecto TypeScript, JavaScript, Go o CSS/SCSS y obtén un informe estructurado completo — una lectura por regla. Corrige los problemas reales, marca el resto como referencia y empieza desde cero.

  1. Determinista, no impulsado por un modelo

    tree-sitter y ast-grep hacen el análisis: las lecturas son idénticas en cada ejecución, con cualquier modelo o sin ninguno.

  2. Un informe sobre el que actuar

    HTML · JSON · CSV · SARIF 2.1.0

    El panel de cobertura muestra qué se midió, y luego archivo, línea, gravedad, id de regla y un mensaje para cada lectura. Marca los problemas conocidos como deuda y solo destacarán los nuevos.

Mantenlo limpio

code-audit changed

Una vez instalado, tu agente audita solo los archivos que acaba de tocar. Las lecturas de gravedad bloqueante — critical y warning por defecto — se detectan y corrigen antes de llegar al repositorio, sin releer todo el código, para mantener bajos los costes del modelo.

  1. Instala la habilidad

    code-audit install --agent claude

    Añade un SKILL.md y un hook PostToolUse a tu agente — Claude Code y Codex.

  2. Audita el diff

    code-audit changed --json

    Solo los archivos cambiados, no todo el proyecto. El hook se dispara tras cada Write y Edit.

  3. Las lecturas bloqueantes detienen la edición

    hardcoded-secret · critical · src/login.ts:52

    El agente lee el id de regla, la gravedad, el archivo, la línea y el mensaje — lo corrige — y solo el código sin lecturas bloqueantes llega a tu repositorio. Las gravedades que bloquean se configuran mediante gateSeverities en .codeauditor.json.

TypeScript, JavaScript, Go y CSS/SCSS — analizados con las gramáticas de tree-sitter y ast-grep.

Qué detecta

Diez analizadores, más tres entre lenguajes, para TypeScript, JavaScript, Go y CSS/SCSS. Cada ejemplo de abajo es una lectura real de un código real — la mayoría invisibles en un solo archivo.

Consultas N+1

for (const org of orgs) { await db.select().from(organizations) }

Un bucle que emite una consulta por iteración, hallado al recorrer una jerarquía en un módulo de consultas real. Cada nodo es otro viaje a la base de datos.

Un módulo muerto

compliance-enhanced.ts — 563 lines, 0 external importers

563 líneas, cero importadores externos, superado por hermanos más nuevos y aún en el árbol. Nada lo referencia, así que nadie lo ve.

Una tabla eliminada, aún consultada

SELECT * FROM generation_queue // dropped in migration 0198

Una migración quitó la tabla, pero ocho puntos de llamada aún la referencian. El esquema avanzó, el código no.

Una credencial en claro

page.type('#password', 'vyy8AUVvish34Fq')

Una contraseña en texto plano en un script, lista para publicarse. Se encuentra leyendo el archivo, sin ejecutarlo.

El catálogo completo — diez analizadores, más tres entre lenguajes

Principios SOLID

Los cinco principios, aplicados mecánicamente.

DRY

El copiar-pegar, detectado antes de ser deuda.

Acceso a datos y seguridad

Inyecciones SQL, fugas entre inquilinos, N+1.

Calidad de la documentación

Las exportaciones sin documentar son bugs futuros.

Buenas prácticas de React

Los errores que sobreviven a la revisión.

Conciencia del esquema

Consultas que referencian columnas inexistentes.

Reglas invariantes

Las reglas de tu equipo, como invariantes estrictos.

Definiciones de esquema
entre lenguajes

Cuando el esquema y el código no coinciden.

Contrato de API
entre lenguajes

Endpoints, campos, auth frente al contrato.

Grafo de dependencias
entre lenguajes

Ciclos, acoplamiento, hubs, huérfanos.

Estilos

Deriva de tokens, descontrol de z-index.

Convenciones

Extrae las convenciones de tu código, marca las desviaciones.

Entre dominios

Lo que solo se ve en las fronteras.

Por diff, en cada edición

Tu agente ejecuta code-audit changed sobre los archivos que acaba de tocar, no sobre todo el proyecto. Cada analizador devuelve lecturas estructuradas — archivo, línea, gravedad, id de regla y un mensaje que el agente puede leer y corregir.

JSON salida
SARIF 2.1.0 salida
CSV salida
HTML salida

Lo que no hace

Tres límites honestos, dichos sin rodeos.

No escribe arreglos

Informa. Edita un humano — o un agente. Code Auditor dice qué está mal y dónde; nunca corrige tu código por ti.

No reemplaza a un linter

Ejecútalo junto a ESLint, Prettier y compañía. Un linter lee un archivo; Code Auditor lee todo el código. Responden preguntas distintas.

Las reglas de tamaño son umbrales, no veredictos

Longitud de función, número de parámetros, tamaño de clase — son medidas ajustables, no juicios. Son lecturas: el orden de acción, nunca un veredicto sobre tu código.