roast-my-design-system

Un escáner determinista que audita tu sistema de diseño, lo puntúa de 0 a 100 frente a 34 repositorios públicos y genera las reglas de agente que mantienen la interfaz escrita por IA dentro del sistema. Se ejecuta localmente, es gratuito, MIT.

Documentación

roast-my-design-system

roast-my-design-system

npm downloads Socket license zero dependencies no telemetry

MCP verified in Claude Code MCP verified in Cursor MCP verified in Windsurf / Devin Desktop

Descubre dónde tu agente de IA inventará la interfaz de usuario.

Tu IA puede escribir la interfaz. Esto asegura que escriba tu interfaz.

npx roast-my-design-system@latest

Ejecútalo en la raíz de un repositorio de UI. Un segundo después, se abre un informe. Sin cuenta. Sin red. Sin telemetría. Nada en tu repositorio cambia.

El historial de versiones está en CHANGELOG.md.

La idea

Un agente copia lo que encuentra.

Inventa donde el repositorio no tiene respuesta.

Probamos esto en 10 productos reales de código abierto, en 355 sesiones de agentes, con y sin esta herramienta.

Hallazgos que cada sesión añadió, contados por las propias reglas de esta herramienta:

TareaModeloCuándoSin roastRoast MCP y reglas instaladasPlugin Roast con su hook de edición
Un nuevo gráfico y un nuevo componente, 4 productos, 3 ejecuciones cada unoSonnet 5Oct 2026, roast 10.121 en 24 ejecucionesno ejecutado7 en 24 ejecuciones
Un nuevo gráfico y un nuevo componente, 4 productos, 3 ejecuciones cada unoHaiku 4.5Oct 2026, roast 10.172 en 24 ejecucionesno ejecutado1 en 24 ejecuciones
Añadir un panel, construir un dashboard, ajustar una lista (80 sesiones)Sonnet 5Sept 202679no ejecutado
Un tema navideño, 10 productosSonnet 5Sept 2026282no ejecutado
Un nuevo gráfico, 4 productos, 5 ejecuciones cada unoSonnet 5Sept 202610 en 20 ejecucionesno ejecutado0 en 20 ejecuciones
Un nuevo gráfico, 4 productosHaiku 4.5Sept 202625390 en 14 de 15 ejecuciones
Gráfico, color de estado, estado vacío, nuevo componenteHaiku 4.5Sept 202642 en 16 ejecuciones49 en 16 ejecuciones3 en 51 ejecuciones

El trabajo rutinario se mantuvo en el sistema con o sin la herramienta. El trabajo que requería algo nuevo no lo hizo.

Un agente no siempre llama a una herramienta cuando debería. En octubre, Sonnet llamó a las herramientas MCP en 7 de 24 sesiones y Haiku en 2 de 24. El hook de edición se ejecuta sin que se le pida. Esa es la columna con los números más bajos.

¿Dónde inventó el agente? Donde el repositorio no tenía nada que copiar. Dub no tiene una paleta de gráficos. Sus propios gráficos codifican 17 colores. Al pedirle un gráfico, Haiku codificó 9 más. En octubre, 5 de los 7 hallazgos que Sonnet dejó con el plugin activado fueron colores de gráficos en Dub. El agente los mantuvo y escribió un comentario diciendo que el repositorio no tiene paleta de gráficos.

Así que el desorden que un agente añade es un mapa de las brechas en tu sistema.

Esta herramienta dibuja el mapa.

Roast. Enseña. Protege.

Roast el repositorio para encontrar su sistema de diseño real, el desorden en él y las brechas.

Enseña al agente, mediante reglas generadas y un servidor MCP local.

Protege cada edición, para que el agente no tenga que recordar preguntar.

ROAST   qué hay en el repositorio y qué falta
  ↓
ENSEÑA   reglas en los archivos del agente, respuestas a través de MCP
  ↓
PROTEGE   cada edición revisada, el PR bloqueado

Lo que obtienes

¿Dónde tendrá que adivinar tu agente?

Lo primero que dice el informe: los lugares donde el repositorio aún no tiene respuesta, o "No se encontraron brechas".

  • la brecha, en una línea
  • los archivos que lo demuestran
  • la única acción que la cierra

Una brecha se conoce con certeza hoy, porque las ejecuciones la encontraron: gráficos que codifican colores en un repositorio sin paleta de gráficos. 43 de 126 repositorios públicos se ven así. Una brecha se une a la lista cuando ha sido medida.

Correcciones que puedes hacer ahora para aumentar la puntuación de salud

El desorden que el agente copiará, clasificado por lo que vale arreglarlo.

  • qué se encontró
  • dónde, con la ruta del archivo
  • por qué importa
  • qué cambiar
  • un botón de copiar con el prompt de corrección para tu agente

Corrige, vuelve a escanear, pulsa el siguiente botón.

Una puntuación que puedes defender en una reunión

De 0 a 100. El mismo número en cada ejecución.

Medida contra tres criterios: las normas ideales de un sistema de diseño, la mediana de 34 repositorios de productos en el núcleo de un benchmark de 119 repositorios, y 10 sistemas reputados (Primer, Polaris, Carbon, shadcn/ui y otros).

Los monorepos obtienen una puntuación por paquete. packages/ui en 80 deja de ocultar apps/web en 40.

Cada hallazgo, con su ruta de archivo

  • cada color codificado y su gemelo casi idéntico
  • cada valor de espaciado fuera de escala
  • cada componente duplicado

Y 8 tipos más, todos en Qué mide. Un archivo HTML. Ábrelo, compártelo por Slack, envíalo por correo.

La barra de uso de color muestra de dónde proviene el color del repositorio: de cada 100 usos de color, cuántos leen un color de tema por nombre, cuántos usan la paleta de Tailwind y cuántos son extraviados escritos a mano. Sigue variables CSS, temas de Tailwind, variables Sass y Less y objetos de tema de JavaScript para hacer el conteo.

El encabezado nombra sobre qué está construido el repositorio: shadcn/ui, un tema de Tailwind, MUI, Mantine, Chakra o Ant Design, y ambos kits cuando un repositorio usa dos.

Reglas para tu agente

Generadas desde tu repositorio, en design-system-rules.md:

componentes canónicos
el archivo de tokens
duplicados conocidos a evitar
pasos de espaciado
tipografías
el vocabulario propio del kit

--apply las escribe en cada archivo de agente que tengas: Claude, Cursor, GitHub Copilot, Windsurf. Cada escaneo también verifica las reglas que ya tienes para referencias obsoletas.

Un script hace el conteo

Cada número proviene de una lectura determinista de tus archivos. Claude escribe la explicación, etiquetada como escrita por IA y mantenida separada de los números.

Cómo se hicieron las ejecuciones

Claude Code, sin interfaz, en 10 productos públicos fijados a un commit cada uno: cal.com, Dub, Metabase, Plausible, SigNoz, trigger.dev y cuatro más. 259 sesiones en septiembre de 2026 y 96 en octubre de 2026 en roast 10.1, con Sonnet 5 y Haiku 4.5. Las sesiones de octubre repiten las tareas de gráfico y nuevo componente en Plausible, SigNoz, trigger.dev y Dub en los mismos commits. Cada archivo modificado fue juzgado por las reglas de esta herramienta al final de la sesión y en el commit fijado. Un hallazgo cuenta solo si la sesión lo añadió.

Nada se renderizó. Cero hallazgos significa que el código sigue estas reglas. No significa que el diseño fue revisado. Método, tablas y límites están en el informe de investigación, que se publicará por separado.

Ejemplos en vivo

Once informes, alojados exactamente como la herramienta los escribe. Cada número determinista, cada ruta real.

  • npx shadcn create, fresco (instalación de fábrica, los 61 componentes): leído como una instalación fresca, "la puntuación es del kit, no tuya"; 13 colores, cada variable de tema en su lugar, los 24 valores de corchetes propios de shadcn nombrados y no contados. Sin puntuación.
  • Unleash (MUI): 1,109 archivos importan el kit y el tema se lee 6,166 veces; 4 colores y 2 espaciados por cada 100 archivos del kit están escritos en los componentes. Puntuación 60.
  • Metabase (Mantine): su propio envoltorio sobre Mantine cuenta como el kit, así que 2,679 archivos se leen en lugar de 392; nada escrito en los componentes, 2 espaciados por cada 100 archivos del kit. Puntuación 47.
  • SigNoz (Ant Design): 2 colores y 7 espaciados por cada 100 archivos del kit escritos en objetos de estilo donde existe un token. Puntuación 51.
  • Apache Airflow (Chakra UI): sin colores escritos en los componentes, 4 espaciados por cada 100 archivos del kit como cadenas de píxeles donde existe un paso de espacio. Puntuación 43.
  • vercel/ai-chatbot (instalación de shadcn): 71 valores como [13px] escritos fuera de la escala de Tailwind, y 66 colores de paleta por cada 100 archivos donde existe una variable de tema; notas de Claude incrustadas. Puntuación 80.
  • excalidraw/excalidraw: 78 valores de espaciado fuera de escala y 90 declaraciones !important. Puntuación 55.
  • dubinc/dub: 642 valores arbitrarios entre corchetes, 21 componentes duplicados y la brecha de la paleta de gráficos nombrada. Puntuación 20.
  • telekom/scale (Stencil): 95 componentes Stencil leídos por etiqueta; 66 valores de espaciado fuera de la escala donde unos 12 bastarían; notas de Claude incrustadas. Puntuación 55.
  • magicuidesign/magicui (registro): contado en los componentes que publica, 52 colores fuera de tema por cada 100 archivos en el código que envía, su sitio de documentación excluido y nombrado. Puntuación 78.
  • adobe/spectrum-web-components (Lit): 740 tokens de color con 8 colores codificados junto a ellos, y 37 declaraciones !important. Puntuación 83.

El informe completo para vercel/ai-chatbot. El veredicto responde qué aprenderá el agente aquí, la sección de brechas viene primero, luego "Qué enseña el repositorio al agente", la lectura de Claude del escaneo:

The full diagnosis report for vercel/ai-chatbot in dark mode: a fixed side panel with the health score and what it measures, the stack, how the repo was read as a shadcn install, an index of every section and what is not the team's and not counted; then where the agent will have to guess, the fixes you can make right now, each with what it is worth and its copy-the-fix-prompt button, the wrapped present with the agent rules, an agent trap callout, 3-yardstick tiles including the 2 shadcn tiles, the adoption map treemap, palette forensics, the shadcn theme variable by variable, spacing receipts, typography specimens, offenders, duplicates, and the component usage ledger

El mismo informe en modo claro (un archivo, conmutador integrado):

The diagnosis report in light mode

Por qué los números se sostienen

  • Determinista. Un script Node de cero dependencias lee cada archivo y devuelve los mismos números en cada ejecución. Aproximadamente un segundo en un repositorio normal.
  • Solo lectura. Sin red. Sin telemetría. La suite de pruebas falla si package.json declara alguna dependencia. Cada versión ejecuta 461 comprobaciones contra 29 repositorios de muestra antes de etiquetarse; los fixtures y sus snapshots viven en tests/, un archivo JSON cada uno.
  • Brechas honestas. Lo que el escaneo no puede leer dice "no medido" y se elimina de la puntuación.
  • Exclusiones honestas. Pruebas, historias, sitios de documentación, arte y plantillas de correo se dejan fuera. Tus propias exclusiones se imprimen en el encabezado del informe con recuentos de archivos.
  • Un benchmark real. 119 repositorios públicos. Una flota central de 34 repositorios React establece las medianas; el resto alimenta los grupos de kits y componentes web, así que un repositorio shadcn se compara con repositorios shadcn y un sistema Lit con sistemas Lit y Stencil. El constructor está en tools/benchmark/.
  • Puntuación importable. scoreHarvest(harvest) devuelve la puntuación y las métricas como datos simples. El informe y una comprobación de CI obtienen los mismos números.

La versión larga, con el alcance del escaneo y lo que el plugin ejecuta en tu máquina, está en docs/reference.md.

Funciona con

Frameworks

React, Next.js, Remix, Vite Stencil, Lit, elementos personalizados

Kits y estilos

Tailwind, shadcn/ui, MUI, Mantine, Chakra UI, Ant Design CSS Modules, Sass, Less, Emotion, styled-components, vanilla-extract, CVA, Stitches

Cada repositorio se compara con repositorios construidos de la misma manera: una instalación de shadcn con instalaciones de shadcn, un producto en MUI, Mantine, Chakra o Ant Design con productos en ese kit, un tema de Tailwind con temas de Tailwind, un sistema Lit o Stencil con otros sistemas de componentes web, y un registro de shadcn con el grupo de shadcn. A un repositorio que usa dos kits se le dice, y sus reglas nombran ambos.

Reconocidos, aún no medidos

Vue, Angular, Svelte: nombrados en el encabezado, colores y espaciados contados, componentes no medidos. El informe lo dice. HeroUI, NextUI, Radix Themes, Fluent UI, React Bootstrap, Grommet: nombrados en el encabezado, sin reglas de kit.

Cada comando

Un solo escaneo lo alimenta todo; las banderas deciden qué aterriza en el disco. Combínalas libremente.

Ejecútalo tú mismo

Comando                                                        Qué obtienes
npx roast-my-design-system@latestEl escaneo y design-system-roast.html, abiertos en tu navegador
... <path>Escanea un repositorio distinto al directorio actual
... --applyLas reglas de agente generadas, inyectadas en cada archivo de agente que tengas: CLAUDE.md, AGENTS.md, .cursorrules, .cursor/rules/, .windsurfrules y .github/copilot-instructions.md, dentro de un bloque marcado. Volver a ejecutarlo reemplaza solo ese bloque, nunca tu propio texto.
... --rulesLas mismas reglas escritas en design-system-rules.md en su lugar, para pegarlas a mano
... --cardroast-card.svg: una tarjeta compartible de 1200x630 con la puntuación y los hallazgos más graves. SVG puro, se incrusta en un README
... --sarifdesign-system-roast.sarif para el escaneo de código de GitHub: súbelo en CI y los hallazgos aparecen en la pestaña Seguridad, anotados en los archivos
... --checkLos archivos modificados del árbol de trabajo verificados contra el sistema de diseño, en la terminal. Sale con código 1 si hay hallazgos, para que encaje en scripts
/roast-my-design-system:review (en Claude Code)La misma verificación en el chat, desde la segunda habilidad del plugin: los hallazgos de cada archivo modificado con la corrección indicada, luego las correcciones aplicadas y la verificación re-ejecutada
... --exclude lab/Deja una carpeta fuera del escaneo (repite la bandera o sepáralas con comas). O lista carpetas en un archivo .roastignore en la raíz del repositorio. De cualquier manera, el informe lo indica en el encabezado
... --jsonEl resumen del escaneo como JSON en stdout, para scripts y pipelines. Incluye schemaVersion, el benchmark utilizado, y cada métrica como número, para que dos escaneos puedan compararse
... --by "Dwayne Hicks"Pone un nombre en el encabezado del informe, para cuando lo ejecutaste para otra persona
... --theme light / --out <file> / --no-open / --openInforme claro, ruta de informe personalizada, nunca abrir el navegador, abrirlo siempre

Para tu agente

Comando                                                        Qué obtienes
... --notes <file.md>La lectura del agente de este escaneo, incrustada en el informe como "Lo que el repositorio le enseña al agente": qué hallazgos importan, qué buenos números son accidentes, qué corregir primero. Etiquetado como escrito por IA y separado de los números medidos. La habilidad de Claude Code lo escribe y lo pasa automáticamente; la bandera está aquí para que cualquier agente pueda usarla
... --section "Title" <file.md>Un capítulo adicional escrito por el agente después de las notas, mismo estilo, misma etiqueta, subtítulos permitidos. Repetible
... --hookLa verificación que el plugin de Claude Code ejecuta después de cada edición, para instalaciones manuales: lee el evento de hook en stdin, verifica el archivo que cambió, imprime solo los hallazgos que la edición agregó como JSON. Siempre sale con código 0
... --stop-hookLa revisión que el plugin de Claude Code ejecuta cuando el agente termina su turno, para instalaciones manuales: lee el evento Stop en stdin y, cuando los archivos que la sesión cambió traen nuevos problemas, responde con un bloque que envía al agente de vuelta una vez. --session-start anota el trabajo que ya estaba sin commitear. ROAST_STOP_REVIEW=off lo desactiva. Siempre sale con código 0
... --mcpEl escaneo como servidor MCP local: 5 herramientas que tu agente llama mientras escribe UI, más el prompt roast-fix que sirve la mejor corrección de un escaneo fresco. Ver Respuestas en vivo vía MCP
/roast-my-design-system (en Claude Code)La experiencia completa: el roast en el chat y incrustado en el informe como "Lo que el repositorio le enseña al agente", la oferta de reglas, y el bucle de corrección con Claude sobre tus propios números

"Por qué esto importa" es genérico, viene con la herramienta y se lee igual en cada informe. "Lo que el repositorio le enseña al agente" es la lectura de tu agente sobre tu repositorio, y solo aparece cuando un agente lo pasó.

Respuestas en vivo vía MCP

El informe y el archivo de reglas describen el repositorio tal como estaba en el momento del escaneo. --mcp mantiene el mismo motor funcionando mientras tu agente trabaja, para que las preguntas se respondan desde el código tal como está ahora, y los errores se detecten antes de que aterricen.

HerramientaLa pregunta que responde
roast_get_context¿Qué debería saber antes de tocar la UI aquí? Enrutado por la carpeta que se está editando
roast_find_component¿Ya existe un componente para esto, y cuál es el canónico? Con un ejemplo de uso real. Cuando dos candidatos empatan, lo dice y nombra a ambos
roast_find_tokenTengo #111111 / 13px en mano. ¿Qué debería haber usado?
roast_validateEstoy a punto de guardar esto. ¿Rompe el sistema?
roast_reviewRevisa mis archivos modificados. Lee el diff de git por sí mismo, así que no se pega código de vuelta

El bucle: contexto antes de construir, encontrar mientras se construye, validar antes de guardar, revisar antes de terminar.

Un intercambio real, contra Unleash, un producto MUI en 60/100. El agente tiene un gris en mano y un padding en mente:

roast_find_token #6b7280
→ Nearest token: #607d8b, 11 channel steps from #6b7280. Unless the difference is a deliberate decision, use the token.

roast_validate (first draft)
→ ✕ L5 Colour #6b7280 written onto an MUI component, and the theme has no such colour.
     Fix: Add it to the theme once (frontend/src/themes/dark-theme.ts), then read it there: color: 'text.secondary' in sx.
  ✕ L5 Pixel size p: 12px on an MUI component.
     Fix: 12px is between steps 1 (8px) and 2 (16px). Keep it with a comment, or use the nearest step in sx.

roast_validate (second draft: color: 'text.secondary', p: 1.5)
→ No measured violations found. Checked: hardcoded colours vs the token set, near-identical colour twins, off-scale spacing …

Cuatro llamadas, menos de 800 tokens, y el nuevo componente lee el tema en lugar de añadir el color número 44.

Los gráficos tienen su propia regla, porque un gráfico necesita varios colores que difieren entre sí y la mayoría de los sistemas de diseño nunca los nombran. Donde un repositorio mantiene una paleta de gráficos, un color escrito a mano en un archivo de gráfico es un hallazgo que nombra la paleta. Donde un repositorio tiene gráficos pero no paleta, un nuevo gráfico que pinta a mano recibe una advertencia que nombra el gráfico existente que hace lo mismo y pide la paleta una vez. Esa advertencia es el informe de brechas, en vivo.

El servidor lee el repositorio de la misma manera que el informe. En un producto construido sobre MUI, Mantine, Chakra UI o Ant Design, el contexto nombra el archivo de tema y la forma propia del kit de leerlo, roast_find_token responde en pasos de espaciado, y las verificaciones marcan un color o un tamaño de píxel escrito en un componente del kit donde el tema tiene un valor. En un tema Tailwind o un repositorio shadcn, marcan una clase de paleta como text-gray-500 donde el tema nombra un color de ese tipo. El valor crudo de un token pegado en un componente se marca con el nombre del token, y un botón construido desde cero donde el repositorio ya tiene un Button muy usado recibe una advertencia que nombra la línea de importación a usar.

El prompt roast-fix sirve el mejor movimiento "Por dónde empezar" de un escaneo fresco, byte-idéntico a los botones de copiar del informe. En Claude Code escribe /mcp__roast__roast-fix, añade un número para saltar la cola. Corrígelo, pregunta de nuevo, y el siguiente movimiento ha subido a la cima: el escaneo es la barra de progreso.

¿Instalaste el plugin de Claude Code? El servidor ya está ahí. De lo contrario:

claude mcp add roast -- npx roast-my-design-system@latest --mcp

Verificado en Claude Code, Cursor y Windsurf (ahora Devin Desktop). Cada uno fue probado de extremo a extremo: servidor conectado, las 5 herramientas listadas, respuestas reales en el chat propio del editor. Local, solo lectura, un escaneo al inicio, sin puerto, sin cuenta.

Cursor: pon esto en .cursor/mcp.json dentro del proyecto (el proyecto, para que el escaneo vea un repositorio, no todo tu disco), luego habilita roast en Configuración → Herramientas y MCP la primera vez:

{ "mcpServers": { "roast": { "command": "npx", "args": ["roast-my-design-system", "--mcp"] } } }

Windsurf (Devin Desktop): su configuración MCP es global (~/.codeium/windsurf/mcp_config.json), así que nombra la carpeta del proyecto para mantener el escaneo limitado a un repositorio:

{ "mcpServers": { "roast": { "command": "npx", "args": ["roast-my-design-system", "--mcp", "/path/to/your/repo"] } } }

Cualquier otro cliente MCP puede registrar el mismo comando stdio.

En CI

El escáner habla SARIF, así que conectarlo al escaneo de código de GitHub son 6 líneas. Los hallazgos aparecen en la pestaña Seguridad, anotados en los propios archivos:

- uses: actions/checkout@v5
- run: npx roast-my-design-system@latest . --sarif --no-open
- uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: design-system-roast.sarif

Para fallar una pull request solo por desorden nuevo, usa guard-my-design-system.

Instalación

Sin instalación, sin necesidad de Claude:

npx roast-my-design-system@latest

Claude Code (recomendado):

/plugin marketplace add gregkozakiewicz/roast-my-design-system
/plugin install roast-my-design-system@roast-my-design-system

Lo que instala: dos habilidades, un servidor MCP local y dos verificaciones que se ejecutan solas, nada más. roast (/roast-my-design-system, o "roast my design system") escanea todo el repositorio, escribe el informe con la lectura de Claude de los números dentro, y luego recorre las correcciones contigo. review (/roast-my-design-system:review, o "review my UI changes") verifica solo lo que cambió, en aproximadamente un segundo. La verificación de edición se ejecuta después de cada archivo que el agente edita y devuelve los hallazgos que esa edición agregó; un archivo sin nada nuevo no recibe mensaje. La revisión de fin de turno se ejecuta cuando el agente dice que ha terminado: si los archivos que esta sesión cambió aún tienen problemas que agregó, el agente se envía de vuelta una vez para corregirlos antes de terminar. Las advertencias de solo consejo nunca lo envían de vuelta, un problema se envía de vuelta una vez por sesión, y el trabajo que no estaba commiteado antes de que la sesión comenzara se deja solo. Para desactivar la revisión, establece ROAST_STOP_REVIEW=off en tu configuración de Claude Code ("env": { "ROAST_STOP_REVIEW": "off" }).

Si esos comandos dan error, tu Claude Code es más antiguo que el marketplace de plugins. Actualízalo, o usa la ruta manual:

git clone https://github.com/gregkozakiewicz/roast-my-design-system.git
cp -r roast-my-design-system/skills/roast-my-design-system roast-my-design-system/skills/review ~/.claude/skills/

(Usa .claude/skills/ dentro de un repositorio para compartirlo con tu equipo. La habilidad review necesita la carpeta roast-my-design-system a su lado.)

OpenAI Codex CLI (mismo SKILL.md, misma carpeta):

git clone https://github.com/gregkozakiewicz/roast-my-design-system.git
cp -r roast-my-design-system/skills/roast-my-design-system ~/.codex/skills/

Invoca con $roast-my-design-system. Usa .codex/skills/ dentro de un repositorio para compartir con tu equipo.

npx skills: npx skills add gregkozakiewicz/roast-my-design-system funciona para agentes que leen ~/.agents/skills/. Claude Code lee ~/.claude/skills/, así que prefiere una de las rutas anteriores.

Requiere Node 18+.

Uso

Abre Claude Code en el repositorio que quieres roastear y escribe:

/roast-my-design-system

Una vez que tienes un sistema de diseño que vale la pena proteger, la segunda habilidad verifica solo lo que cambiaste:

/roast-my-design-system:review

Ejecuta la misma verificación que --check en los archivos de tu git diff y lista cada hallazgo con su corrección, en el vocabulario propio del kit en un repositorio MUI, Mantine, Chakra, Ant Design o Tailwind-theme. Sin puntuación, sin informe: la verificación pequeña para las tardes de martes. Claude también lo capta de palabras simples como "review my UI changes" o "did I break the design system".

Obtienes el roast en el chat más design-system-roast.html en la raíz de tu repositorio, una página autocontenida con:

  • una puntuación de salud calculada de cómo tus números se sitúan frente al ideal
  • "Lo que el repositorio le enseña al agente": la lectura de Claude de tu escaneo, incrustada en el archivo que reenviarás, etiquetada como escrita por Claude y separada de los números medidos. La puntuación sola puede halagar; esta sección mantiene honesto un 85/100 compartido
  • mosaicos de estadísticas comparándote con los 3 puntos de referencia
  • un alternador de tema claro/oscuro en un solo archivo
  • la barra de paleta ponderada por uso, la rampa de grises, los recibos de espaciado fuera de escala, los recibos de componentes duplicados con rutas de archivo clicables, y el registro de los peores infractores
  • una lista de Correcciones que puedes hacer ahora para aumentar la puntuación de salud: hasta 3 movimientos derivados de los números propios de tu repositorio, cada uno con un recibo de ruta de archivo
  • ¿Dónde tendrá que adivinar tu agente? abre el informe: las brechas donde el repositorio aún no tiene respuesta, con los archivos que prueban cada una y el movimiento que la cierra, o "No se encontraron brechas"
  • Dale las respuestas al agente: design-system-rules.md envuelto dentro del informe como un regalo. Desenvuelve, luego copia o descarga las reglas de agente generadas desde tu escaneo

Después del roast, la habilidad ofrece escribir design-system-rules.md en el disco y fusionarlo en tu CLAUDE.md, .cursor/rules o AGENTS.md.

Cuatro prompts para probar

Roast my design system.
How bad is my CSS? Scan this repo and show me the receipts.

Con el servidor MCP conectado:

Is there already a Button component in this repo, and which one should I use?

Y el de uso diario, después de haber cambiado algo de la interfaz:

Review my UI changes against the design system.

Solución de problemas

  • "Comando no encontrado" o el plugin no se instala. Actualiza Claude Code; el marketplace de plugins necesita una versión reciente. La instalación manual funciona en cualquier versión.
  • "Nada que roastear" o un informe casi vacío. El escaneo encontró casi ningún color o espaciado. El estilo probablemente vive en otro repositorio, un CDN o un paquete instalado. Ejecútalo desde el repositorio que contiene los estilos.
  • Una puntuación que parece incorrecta. Revisa el encabezado del informe: indica cómo se leyó el repositorio (producto, librería, shadcn, un kit, un tema de Tailwind) y cada carpeta que se omitió. Limita el escaneo con .roastignore o --exclude si un playground o una app antigua están distorsionando los números.
  • El informe no se abrió. Se escribe en design-system-roast.html en la raíz del repositorio. Ábrelo en cualquier navegador; no necesita servidor y no hace solicitudes.
  • El servidor MCP no aparece. Reinicia el cliente después de añadirlo. En Claude Code, claude mcp list muestra si se conectó. Necesita Node 18 o superior.

Soporte

Los errores y preguntas van a GitHub Issues. Todo lo demás llega a Greg a través de gregkozakiewicz.com. Problemas de seguridad: consulta SECURITY.md.

Privacidad

La herramienta lee el repositorio al que la apuntas y escribe su salida junto a él. No hace solicitudes de red, no recopila datos y no tiene telemetría. El servidor MCP responde desde el mismo escaneo local. Nada sobre tu código, tus prompts o tu conversación se envía a nadie, incluido el autor.

Qué mide

MétricaSistema de diseño idealMediana de la flota principal de 34 reposMediana de 10 sistemas reputados
Colores distintos~2411914
Tonos de grishasta 13284
Valores de espaciado fuera de escala~12245
Tipografías2 a 331
Radios de borde fuera de escalahasta 10140
Componentes duplicados0169
Bloques de estilo en línea05112
Valores arbitrarios de Tailwind~20560
Pares de colores casi idénticos071
Declaraciones !important053
Componentes nunca importados000

Benchmark reconstruido el 3 de octubre de 2026 (versión 10.0.0), contado por la propia cosecha del escaneo.

Sí, el repositorio mediano ya es un desastre. Ese es el punto. Un agente que llegue a él copiará el desastre fielmente y, donde el desastre se acabe, añadirá algo propio.

Tu IA puede escribir la interfaz. Esto asegura que escriba tu interfaz.

Licencia

MIT. El código es tuyo para bifurcar, modificar y redistribuir; el aviso de copyright viaja con él.

¿Construyendo tu propio informe, resumen o auditoría a partir de las puntuaciones, conteos o comparaciones de benchmark de esta herramienta? Mantén una línea en él: Construido con roast-my-design-system por Greg Kozakiewicz. La habilidad pide lo mismo a un agente de IA que escriba tal documento a partir del escaneo.

roast-my-design-system™ y la marca GK son marcas comerciales de Greg Kozakiewicz. Bifurcar es bienvenido, republicar bajo este nombre no lo es: consulta marca y atribución.

Construido y diseñado por GK mark Greg Kozakiewicz.