Por qué el sitio de documentación no funciona
El instinto es dirigir al agente al sitio del sistema de diseño. Rara vez ayuda, por cuatro razones estructurales que no tienen nada que ver con la calidad del sitio.
| Sitio de documentación | Lo que necesita un agente | |
|---|---|---|
| Patrón de acceso | Navegado: se accede a la página necesaria | Todo lo relevante en el contexto, antes de la primera decisión |
| Organización | Por componente: Botón, Input, Card | Por decisión: roles de color, densidad, elevación, lo que está prohibido |
| Voz | Describe la intención: "nuestros botones transmiten confianza y cercanía" | Establece restricciones: "font-weight 500, radius 6px, nunca un degradado" |
| Integridad | Cubre lo que existe | Debe cubrir también lo que no debe existir |
La fila de organización es la que la gente pasa por alto. Un sitio organizado por componentes es perfecto para alguien que ya sabe que necesita un Botón. Un agente que está a punto de construir una pantalla aún no ha decidido qué componentes usar; sus primeras decisiones son sobre densidad, jerarquía y maquetación, y eso es exactamente lo que un sitio organizado por componentes nunca cubre.
La fila de integridad es la más trascendental. La documentación describe lo que existe porque para eso sirve la documentación. Pero la diferencia entre su interfaz y una genérica es, principalmente, un conjunto de cosas que usted nunca hace, y ninguna página de componentes las mencionará jamás.
Lo que contienen realmente los archivos reales
Analizamos 299 archivos DESIGN.md publicados en repositorios y directorios públicos —archivos escritos deliberadamente para dar guías de diseño a agentes de IA— y medimos sus contenidos. 72 eran específicamente archivos de diseño visual. El patrón es lo suficientemente consistente como para usarlo como una lista de verificación de lo que se debe evitar.
| Porcentaje de archivos | |
|---|---|
| Colores como hex raw, sin rol semántico | 86% |
| Sin prohibiciones de ningún tipo | 76% |
| Sin definición de modo oscuro | 69% |
| Sin motivos distintivos | 57% |
| Al menos un adjetivo vago que intenta definir el diseño | 54% |
| Sin ningún valor de tamaño concreto | 44% |
| Mencionan la tipografía | 83% |
Compare las dos últimas filas. La tipografía se menciona en el 83% de los archivos, pero el 44% no contiene ningún valor de tamaño concreto. Esa brecha resume todo el problema en una sola estadística: los archivos hablan de tipografía sin decir nunca qué tamaño tiene cada elemento.
La cifra de los adjetivos es la otra mitad. "Limpio" aparece en el 39% de estos archivos, "moderno" en el 36%. Ambas son palabras que un modelo satisface produciendo el centro de su distribución de entrenamiento, que es precisamente el aspecto genérico que el archivo pretendía evitar.
Un modelo al que se le pide algo "limpio y moderno" produce el promedio de todo lo que ha visto. Lo mismo ocurre con el modelo de cualquier otra persona si se le pide lo mismo.
Los siete cambios
Cada uno de estos responde a un fallo medido anteriormente. Aplicados en conjunto, transforman una descripción en algo ejecutable.
- 1
Asigne un rol a cada color, no solo un valor
#6b7280es un valor que un modelo usará indistintamente para el texto del cuerpo, bordes, iconos, placeholders y estados desactivados.--text-muted, descrito únicamente como texto secundario y de apoyo, tiene una sola función. Cinco roles superan a un hex, y permiten cambiar los bordes más tarde sin alterar los subtítulos.--text-muted: #6b7280 /* secondary and supporting text only */ --border-subtle: #e5e7eb /* structural edges, dividers */ --text-disabled: #9ca3af /* disabled controls only */ - 2
Sustituya cada adjetivo por un número o una regla
"Espaciado generoso" se convierte en "gap de sección 64px, padding de tarjeta 24px". "Tipografía limpia" se convierte en una escala. Si una frase no puede contrastarse con una pantalla renderizada, es decoración.
- 3
Escriba las prohibiciones
La sección con mayor impacto y la que el 76% de los archivos omite por completo. Cinco líneas son suficientes para empezar.
## Never - No gradients - No drop shadows — elevation is a surface step plus a 1px border - No font-weight above 600 - No colour value outside the token set - No border-radius above 12px - 4
Defina el modo oscuro, no permita que sea derivado
Si se deja sin definir, el modelo invierte el modo claro y el resultado falla de forma predecible: las sombras dejan de leerse, los grises medios pierden contraste en ambos extremos y un color de acento saturado que se veía bien sobre blanco deslumbra sobre un fondo casi negro. Un segundo set de tokens cuesta una hora de trabajo y elimina toda una categoría de correcciones.
- 5
Declare la decisión de densidad explícitamente
Saber si se trata de una herramienta densa o de una superficie de marketing espaciosa cambia cada decisión posterior, y es la decisión que la mayoría de los archivos nunca toma. Si su producto tiene ambos tipos de superficie, eso requiere dos archivos, no un solo archivo ambiguo.
- 6
Nombre al menos dos motivos
Los elementos específicos y recurrentes que hacen que el diseño sea suyo: una línea de acento de 2px a la izquierda de los encabezados de sección, columnas numéricas siempre tabulares y alineadas a la derecha, una forma particular de dibujar los estados vacíos. El 57% de los archivos no tienen ninguno, razón por la cual su resultado es correcto pero carece de personalidad.
- 7
Apunte al archivo de tokens; nunca lo repita
En el momento en que un valor hex existe tanto en el archivo de diseño como en el de tokens, uno se actualizará y el otro no, y el modelo usará con seguridad el valor obsoleto. Referencie, no copie.
Si solo puede aplicar uno de estos cambios, elija el tercero. Una lista de prohibiciones requiere quince minutos de trabajo y cambia el resultado generado más que los otros seis combinados, porque restringe el enorme espacio de decisiones que sus permisos dejaron abierto.
Lo que producen los siete cambios, al final, es un archivo cuyos valores un agente puede resolver sin inventar nada. Esta es la misma información renderizada en lugar de escrita; útil aquí como una lista de verificación de lo que su propio archivo debe ser capaz de responder:
Token specimen · real values
Sage & Slate Editorial
Live renderSage & Slate Editorial's actual tokens — the same values its exports use.
Color tokens
Sage & Slate Editorial
Core
background
H 70 · C1, 0, 5, 7
foreground
H 84 · C7, 0, 17, 88
card
H 60 · C0, 0, 2, 4
muted
H 70 · C1, 0, 5, 10
border
H 69 · C1, 0, 6, 16
Brand
primary
H 119 · C45, 0, 46, 47
primary-fg
H 0 · C0, 0, 0, 100
secondary
H 213 · C59, 33, 0, 33
accent
H 49 · C0, 7, 39, 20
ring
H 119 · C45, 0, 46, 47
Semantic
destructive
H 0 · C0, 68, 68, 21
destructive-fg
H 0 · C0, 0, 0, 0
success
H 119 · C45, 0, 46, 47
warning
H 41 · C0, 22, 68, 31
muted-fg
H 80 · C4, 0, 13, 64
Charts
chart-1
H 119 · C45, 0, 46, 47
chart-2
H 213 · C59, 33, 0, 33
chart-3
H 49 · C0, 7, 39, 20
chart-4
H 120 · C27, 0, 27, 34
chart-5
H 71 · C8, 0, 41, 74
Typography
Sage & Slate Editorial
Scale: major-third
Density: relaxed
Heading · Plus Jakarta Sans · 2.5rem
Sample headline
Subheading · Plus Jakarta Sans · 1.875rem
A warm organic editorial UI kit on a sage-green canvas with generous rounded cards, eyebrow accent chips, and a soft photography-forward layout.
Body · DM Sans · 1rem
A warm editorial system built on a sage-green page background with floating off-white cards that carry large border-radius and soft shadows. Bold geometric headings open with inline eyebrow accent chips, and generous whitespace defines the rhythm. The palette draws from nature: forest greens, dusty blues, and warm wheats, applied as accents on a near-neutral sage canvas. Ideal for photography, lifestyle, wellness, and editorial content surfaces.
Mono · Space Mono · 0.8125rem
npx shadcn add sageslateeditorial.json
Aa
Plus Jakarta Sans · Heading
Aa
DM Sans · Body
ABCDEFGHIJKLM NOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 & @ # % →
Tokens
Sage & Slate Editorial primitives
Radius scale
Component radius
Elevation
Spacing · base 1rem
Cómo escribir una prohibición efectiva
No todas las prohibiciones funcionan igual. Tres propiedades separan aquellas que cambian el resultado de las que son ignoradas.
| Débil | Fuerte | Por qué | |
|---|---|---|---|
| Especificidad | "Evite los estilos excesivamente decorativos" | "Sin degradados, sin sombras paralelas, sin bordes decorativos" | Un modelo no puede evaluar qué es "excesivamente" |
| Verificabilidad | "Mantenga la tipografía sobria" | "Nunca utilice un font-weight superior a 600" | Uno se puede buscar con grep; el otro no |
| Alternativa proporcionada | "No utilice box-shadow" | "Sin box-shadow: la elevación es un paso de superficie más un borde de 1px" | Prohibir sin sustituir deja que el modelo invente un reemplazo |
La tercera fila es la que se suele pasar por alto. Una prohibición sin alternativa crea un vacío que el modelo debe llenar, y lo hace basándose en la misma distribución de entrenamiento de la que usted intentaba escapar. Cada "nunca X" debe ir seguido de "en su lugar, Y".
Estructura y longitud
El archivo debe caber en el contexto junto con la tarea real, lo que impone un límite real. Aproximadamente 400 líneas es un objetivo viable; a partir de ahí, las reglas individuales empiezan a perder prioridad frente a la tarea.
El orden también importa. Coloque la intención y las prohibiciones al principio. Un modelo que lee de arriba abajo encuentra la regla general antes que el caso especial, que es el mismo orden que Stripe utiliza en su Appearance API: primero el tema, luego las variables y después las reglas específicas.
# DESIGN.md
## Intent <- who reads this product, and what it is for
## Never <- the prohibitions, early and unmissable
## Colour <- roles for light and dark, referencing tokens
## Type <- scale with real numbers, weight band, tracking
## Spacing & density <- the scale, and which surface uses which step
## Elevation <- the strategy, stated once
## Composition <- how components sit together
## Motifs <- what makes this design specifically oursSi su producto tiene superficies genuinamente diferentes —un sitio de marketing y un panel de control denso— no escriba un solo archivo con salvedades. "Espaciado generoso, aunque las tablas pueden ser más densas" son dos reglas fingiendo ser una, y el modelo tendrá que elegir. Escriba un archivo raíz con lo que nunca varía y archivos por superficie con lo que sí lo hace.
Qué debería ir en un servidor en su lugar
No todo debe estar en el archivo; intentar incluirlo todo es lo que hace que crezca hasta dejar de ser útil. La línea divisoria es si el agente lo necesita antes de decidir o solo bajo demanda.
| Dónde | Por qué | |
|---|---|---|
| APIs de componentes, props, variantes | Servidor | Extenso, cambia a menudo, solo es necesario una vez elegido el componente |
| Catálogo de iconos | Servidor | Cientos de nombres, necesarios de uno en uno |
| Roles de color, escalas, densidad | Archivo | Necesario antes de la primera decisión, siempre |
| Prohibiciones | Archivo | Un agente nunca piensa en preguntar qué está prohibido; tiene que saberlo de antemano |
El servidor MCP de Carbon de IBM es un buen modelo para la primera columna: expone la búsqueda de documentación, ejemplos de código de componentes, gráficos y componentes experimentales como herramientas. Notablemente, ninguna de estas son prohibiciones, porque una herramienta de recuperación solo muestra lo que el agente piensa consultar. Más sobre esta división.
Comprobar si funciona
Escribir el archivo y asumir que ha funcionado es la forma en que los equipos descubren el problema tres semanas después. Cuatro comprobaciones, en orden creciente de esfuerzo.
- 1
Busque valores de color literales mediante grep
Si el agente sigue los roles semánticos, no debería haber ningún valor hex fuera de su archivo de tokens.
grep -rn --include='*.tsx' --include='*.css' -E '#[0-9a-fA-F]{3,8}\b' src \ | grep -v 'tokens\|globals.css' - 2
Busque mediante grep los pesos prohibidos
El peso es donde la jerarquía suele revertirse silenciosamente al valor predeterminado, y es la señal más rápida de que una prohibición no se está aplicando.
grep -rn --include='*.tsx' -E 'font-(bold|extrabold|black)' src | head -30 - 3
Solicite la misma pantalla dos veces, en sesiones separadas
La consistencia entre sesiones es la prueba real. Si dos ejecuciones difieren significativamente en espaciado, radio o jerarquía, el archivo no está restringiendo lo necesario, y el diff le indicará exactamente qué sección falta.
- 4
Construya primero una pantalla en modo oscuro
Si el modo oscuro fue derivado en lugar de definido, aquí es donde saldrá a la luz. Es mucho más económico detectarlo en la pantalla uno que en la pantalla veinte.
Las dos primeras comprobaciones deben integrarse en CI. Un control que rechace un pull request que contenga un valor hex bruto aporta más a la consistencia a largo plazo que cualquier documentación; esta es la conclusión a la que llegó Salesforce con el linter de SLDS y Stripe al eliminar la capacidad por completo.
Los kits de diseño de Identity Forge incluyen esta estructura preconfigurada: 28 roles de color semánticos para modo claro y oscuro, escalas de tipografía y espaciado, elevación, motivos y una lista explícita de lo que se debe y no se debe hacer, todo serializado en un DESIGN.md. Explore los kits o lea cómo generar un DESIGN.md.
¿Puedo simplemente dirigir mi agente de IA al sitio de documentación de mi sistema de diseño?
Rara vez funciona. Un sitio se navega página por página, está organizado por componente y describe la intención en prosa. Un agente necesita las decisiones en contexto antes de elegir cualquier componente, organizadas por decisión en lugar de por componente, con restricciones expresadas como reglas verificables. Un archivo en el repositorio cumple esa función; un sitio no.
¿Qué longitud debe tener un DESIGN.md?
Aproximadamente 400 líneas es un límite manejable. Debe compartir contexto con la tarea actual y, pasado ese punto, las reglas individuales empiezan a perder atención. Si el archivo crece, suele significar que cubre varias superficies a la vez y debería dividirse en un archivo raíz y archivos específicos por superficie.
¿Cuál es la sección más importante?
Las prohibiciones. El 76% de los archivos de diseño publicados no contienen ninguna, y la diferencia entre su interfaz y una genérica es, principalmente, un conjunto de cosas que nunca se hacen. Dedicar quince minutos a escribir una sección de "Nunca" cambia el resultado más que cualquier otra sección de longitud comparable.
¿Debo incluir los valores de mis tokens en el archivo de diseño?
No; haga referencia a ellos. Una vez que un valor existe en dos lugares, uno se actualizará y el otro no, y el modelo utilizará con confianza la copia obsoleta. Indique el rol y dónde se aplica; deje que el archivo de tokens contenga el valor.
¿Sigo necesitando un sitio de documentación si tengo un DESIGN.md?
Sí, para los humanos y para los detalles de la API de los componentes que son demasiado extensos para un archivo. No compiten entre sí: el sitio documenta en profundidad lo que existe, el archivo establece las decisiones que un agente necesita antes de empezar. Los catálogos de componentes extensos se gestionan mejor mediante un servidor MCP que mediante cualquiera de las dos opciones.