Saltar al contenido

Documentar

Una fuente, varios destinos

Cómo publicar la misma documentación Markdown en las guidelines de Figma, en Code Connect, en el repositorio, en Claude y en Storybook sin mantener copias distintas.

Última revisión:

Cada herramienta lee las reglas del sistema en un sitio distinto: el agente de Figma, en las guidelines; Claude Code, en el repositorio; Claude Design, en el sistema publicado. Si escribes una versión para cada una, acabarán diciendo cosas distintas. Esta página propone escribir una vez y publicar en cada destino.

En esta página

Los destinos

DestinoQuién lo leeLímitesFuente
Guidelines de la libreríaEl agente de FigmaDe 3 a 8 archivos, menos de 100 KB recomendados, 200 KB como máximoFigma: About guidelines
Instrucciones de Code ConnectAgentes que leen el diseño por el servidor MCPUna por conexión de componenteFigma: Code Connect integration
CLAUDE.md o AGENTS.mdClaude Code y otros agentes de código, en cada sesiónMenos de 200 líneas por archivo, según Claude CodeClaude Code: Memory
SkillsClaude Code, cuando la tarea coincideSKILL.md de menos de 500 líneasClaude Code: Skills
Sistema de diseño en ClaudeClaude Design y los chats de ClaudeEn beta; se crea desde fuentes o con /design-syncClaude Help: Set up your design system
Conocimiento de un ProjectLos chats de ese ProjectSe usa en todos sus chatsClaude Help: Projects
Documentación MDX de StorybookAgentes conectados al MCP de StorybookSolo lo escrito en el MDXStorybook: Best practices
  1. Fuente

    Repositorio

    1. docs/, Fundamentos, componentes, patrones, reglas
  2. Destinos

    Generados o enlazados

    1. Guidelines de Figma, Agente de Figma
    2. CLAUDE.md, AGENTS.md y skills, Agentes de código
    3. Sistema publicado en Claude, Claude Design
    4. Instrucciones de Code Connect, Servidor MCP de Figma
La carpeta docs como fuente única de las reglas, publicada en cada destino.

La carpeta docs como fuente

Recomendación

La fuente es la carpeta docs/ del repositorio, porque es el único sitio con historial de cambios, revisión por pull request y validación automática. Los demás destinos se generan desde ella o la enlazan. Nunca se edita una regla directamente en un destino.

Qué va a cada destino

  • Guidelines de Figma: las reglas que afectan al diseño (fundamentos, antipatrones, patrones), agrupadas en pocos archivos. No las props: el agente de Figma trabaja con los componentes de la librería, no con el código.
  • Instrucciones de Code Connect: dos o tres líneas por componente con lo que un agente de código necesita al implementarlo, sacadas de la sección Reglas de su documento. Lo vemos en Instrucciones para el MCP.
  • CLAUDE.md o AGENTS.md: las reglas que valen siempre y un mapa de la carpeta docs/, no los documentos enteros. Claude Code permite importar archivos con @ruta, pero los archivos importados se cargan al empezar la sesión y no reducen el coste de contexto (Claude Code: Memory). Mejor enlazar las rutas y dejar que el agente abra lo que necesite (capítulo 6).
  • Sistema de diseño en Claude: el repositorio con los componentes y la documentación, como una de sus fuentes. Si los componentes son de React, /design-sync desde Claude Code lee los tokens y los componentes directamente (Claude Help: Set up your design system).
  • Storybook: si usas su MCP, el manifiesto de documentación solo recoge lo que está escrito en los archivos MDX, no valores importados de otros archivos (Storybook: Best practices).

Generar las guidelines de Figma

Mientras las guidelines estén en beta, los archivos se suben a mano (Figma: About guidelines). Un script puede prepararlos desde docs/ y comprobar el tamaño:

scripts/build-figma-guidelines.mjs

// Junta docs/ en los archivos que se suben a Figma (Library → Manage guidelines…).
import fs from 'node:fs';
import path from 'node:path';

const OUT = 'dist/figma-guidelines';
const groups = {
  'overview.md': ['docs/foundations'],
  'rules.md': ['docs/rules'], // reglas transversales y anti-patterns.md
  'patterns.md': ['docs/patterns'],
  'content.md': ['docs/content'],
};

const read = (p) =>
  fs.statSync(p).isDirectory()
    ? fs.readdirSync(p).filter((f) => f.endsWith('.md')).sort().map((f) => read(path.join(p, f))).join('\n\n')
    : fs.readFileSync(p, 'utf8').replace(/^---\n[\s\S]*?\n---\n/, ''); // sin frontmatter

fs.mkdirSync(OUT, { recursive: true });
let total = 0;
for (const [file, sources] of Object.entries(groups)) {
  const text = sources.map(read).join('\n\n');
  fs.writeFileSync(path.join(OUT, file), text);
  total += Buffer.byteLength(text);
}
console.log(`Guidelines: ${(total / 1024).toFixed(1)} KB`);
if (total > 100 * 1024) process.exitCode = 1; // Figma recomienda menos de 100 KB

El script es un ejemplo: ajusta los grupos a tu carpeta docs/. Lo importante es el orden de trabajo: se cambia docs/, se genera, se sube.

En resumen

  • Cada herramienta lee las reglas en un sitio distinto, con límites distintos.
  • La carpeta docs/ del repositorio es la única fuente; los destinos se generan o la enlazan.
  • Las guidelines de Figma se pueden generar con un script que respete el límite de tamaño.

Fuentes