Saltar al contenido principal

Workflow lab: cómo pasar del diseño al código y viceversa con agentes

Riccardo ErraDeveloper Advocate, Figma

Los agentes de programación están transformando la forma en que desarrollan los desarrolladores, pero su eficacia depende de la información que reciben. Este flujo de trabajo explora cómo el contexto mantiene sincronizados el código y el lienzo.

Compartir Workflow lab: cómo pasar del diseño al código y viceversa con agentes

Ilustración principal de Marine Buffard

Te damos la bienvenida a Workflow Lab, donde presentamos un flujo de trabajo de ejemplo con productos y herramientas de Figma.

Ficha del flujo de trabajo:

Productos de Figma: Figma Design, FigJam

Herramientas: Servidor MCP de Figma, Code Connect, use_figma, generate_diagram, search_design_system, generate_figma_design, get_variable_defs

Equipo: diseñador de producto, responsable de sistemas de diseño, ingeniero de software

Pregunta que resolver: ¿Y si el resultado de tu agente de programación pudiera estar listo para producción antes?

El equipo de ingeniería de Radicle, una app ficticia de aprendizaje de STEM, avanza más rápido que nunca. El trabajo que antes llevaba semanas ahora lleva días, o incluso horas. Aun así, esta velocidad no los lleva muy lejos: la mayoría de las veces, el código generado por IA se desvía de las especificaciones de diseño. El equipo proporciona a su agente de programación capturas de pantalla y tickets de desarrollo como referencia, pero no es suficiente para obtener los resultados correctos y terminan teniendo que rehacerlos.

¿Y si la primera iteración de la IA estuviera más cerca de estar lista para producción? Si tiene más contexto de diseño con el que trabajar —como componentes y tokens aprobados y documentados en Figma—, un agente de programación puede ajustarse mejor a tu intención con menos indicaciones. En este flujo de trabajo de ejemplo, un desarrollador de Radicle utiliza las herramientas para desarrolladores de Figma para proporcionar más contexto a su agente de programación y así generar mejor código. Sigue el proceso para ver cómo el desarrollador mantiene sincronizados el diseño y el código de una nueva funcionalidad, desde el primer wireframe hasta la revisión final.

El problema

El equipo de Radicle quiere renovar la bandeja de entrada donde los estudiantes pueden enviar mensajes a los instructores y a otros estudiantes. Primero, planean agregar un nuevo flujo de actualización masiva, que tendrá tres superficies: una barra de herramientas, un modal y una notificación temporal. La barra de herramientas permitirá al usuario seleccionar todos sus mensajes, eliminarlos o marcarlos como no leídos; el modal le pedirá que confirme o cancele la acción y, por último, la notificación temporal indicará que la acción se realizó correctamente y ofrecerá la opción de deshacerla.

El diseñador del equipo crea cada pantalla en Figma Design y el desarrollador del proyecto proporciona estos diseños a su agente de programación. Reciben el código rápidamente, pero la UI no queda bien. Los íconos no coinciden, el espaciado del modal es irregular y a la notificación temporal le falta el estado de error. El desarrollador podría pasar toda la tarde rehaciéndolo. En cambio, da un paso atrás y vuelve a empezar con las herramientas para desarrolladores de Figma.

Bandeja de entrada en modo oscuro que muestra una barra de herramientas con controles para seleccionar todo, marcar como no leído, eliminar y ordenar, sobre una lista de mensajes.Bandeja de entrada en modo oscuro que muestra una barra de herramientas con controles para seleccionar todo, marcar como no leído, eliminar y ordenar, sobre una lista de mensajes.
La nueva barra de herramientas de la bandeja de entrada de Radicle permite al usuario seleccionar todos los mensajes, marcarlos como no leídos o eliminarlos.

Planificación antes de dar indicaciones

Antes de escribir código, el desarrollador define el comportamiento previsto de las pantallas, los estados y las transiciones que conforman el nuevo flujo de actualización masiva. Proporciona este esquema al agente, junto con el PRD y el código de los componentes que conforman actualmente la bandeja de entrada. Con la herramienta generate_diagram y el servidor MCP de Figma, el desarrollador crea en FigJam un diagrama editable que ilustra el flujo entre las tres superficies:

  • La opción "Seleccionar todo" de la barra de herramientas selecciona todos los mensajes.
  • La opción "Eliminar" abre el modal de confirmación.
  • El botón "Deshacer" de la notificación temporal restablece el panel a su estado anterior.

El diagrama proporciona contexto adicional que el agente puede aprovechar y, al mismo tiempo, le da al equipo algo sobre lo que debatir antes de comenzar el desarrollo. El desarrollador comparte el FigJam con su contraparte de diseño y un líder de sistemas de diseño, quienes ambos dejan feedback directamente en el diagrama en lugar de un hilo de Slack.

El agente genera un flujo editable de FigJam a partir del PRD, que el diseñador puede revisar antes de que comience la implementación.

Proporcionarle al agente un sistema a partir del cual trabajar

Una vez que todos dan su aprobación, el desarrollador proporciona el diagrama de FigJam a su agente de programación a través del servidor MCP de Figma, lo que le da al agente acceso a los componentes, tokens y disposiciones del sistema de diseño de Radicle.

Si el desarrollador solo tuviera una captura de pantalla como referencia, tendría que buscar en la base de código el componente correcto o recurrir al diseñador para aclarar detalles: si ese espacio de 12 px corresponde al token de espaciado correcto, si el botón es el secundario que ya existe en el repositorio o si el modal es un patrón nuevo o algo que el equipo ya publicó. En cambio, todas esas respuestas ya están en el archivo y, a través del servidor MCP de Figma, le proporcionan al agente todo el contexto de diseño que necesita.

Diagrama de flujo que muestra acciones masivas en conversaciones: marcar como no leído o eliminar, con rutas de confirmación y notas de revisión de diseño.Diagrama de flujo que muestra acciones masivas en conversaciones: marcar como no leído o eliminar, con rutas de confirmación y notas de revisión de diseño.
El desarrollador proporciona al agente el diagrama de FigJam junto con la biblioteca de Figma de Radicle, lo que le da acceso a los componentes, variables y disposiciones correctos.
Tres pantallas móviles de la app de aprendizaje Radicle: pantalla de inicio con la marca, pantalla de inicio de sesión y registro, y panel de cursos.Tres pantallas móviles de la app de aprendizaje Radicle: pantalla de inicio con la marca, pantalla de inicio de sesión y registro, y panel de cursos.

Conectar el sistema de diseño con el código

Saber qué componente usar no es lo mismo que saber cómo está implementado. Esa información proviene de Code Connect, que configura el responsable de sistemas de diseño de Radicle. Desde Figma, conecta la biblioteca con el repositorio de GitHub del equipo para que cada componente apunte al archivo que lo implementa. Luego, escriben archivos de plantilla para componentes como botones, íconos y modales en la base de código, asignando propiedades de Figma a propiedades de código.

Ahora, el desarrollador le indica al agente que cree a partir de su selección de Figma, y Code Connect identifica qué componente debe importar. En lugar de gastar tiempo y créditos escribiendo código nuevo, el agente parte del modelo de implementación que ya existe.

Archivo de diseño de Figma que muestra los componentes del panel de Radicle junto con los detalles de inspección, el comportamiento de los componentes y el código React conectado.Archivo de diseño de Figma que muestra los componentes del panel de Radicle junto con los detalles de inspección, el comportamiento de los componentes y el código React conectado.
Code Connect vincula la variante de Figma seleccionada con su implementación en React y le proporciona al agente un componente como punto de partida.

Pero el estado de selección de la actualización masiva es nuevo, así que es la única parte que Code Connect no puede mapear. Antes de crearlo desde cero, el desarrollador le indica al agente que use search_design_system, que busca en las bibliotecas de Figma del equipo un componente de selección existente. El agente identifica uno similar de una funcionalidad que el equipo lanzó hace unos meses. A partir de ahí, encuentra ese componente en la base de código y lo adapta al flujo de actualización masiva. El resultado está alineado con la marca y es coherente con el resto de la app de Radicle, y el agente no necesita inventar un patrón que el equipo ya creó.

El desarrollador usa search_design_system para encontrar un componente de selección masiva existente, de modo que el agente no tenga que crearlo desde cero.

Detectar desviaciones antes de que ocurran

El desarrollador continúa programando el modal de confirmación. Pero mientras trabaja en él, el equipo de diseño realiza dos cambios: el modal necesita un color de marca más oscuro y el botón tiene un nuevo radio de esquina. El diseñador publica la actualización en la biblioteca de Radicle y señala los cambios en un ticket. En lugar de hacer los cambios manualmente, el desarrollador le pide al agente que compruebe si hay desviaciones.

Le indica que use get_variable_defs en el agente de programación, que devuelve las variables utilizadas en el modal, ahora actualizadas con los cambios del diseñador. El agente las compara con los tokens del código, detecta ambas discrepancias de inmediato y actualiza el modal.

Diferencia de código que actualiza el token de color rojo de Radicle de #FF7A45 a #E95000 en archivos CSS y TypeScript.Diferencia de código que actualiza el token de color rojo de Radicle de #FF7A45 a #E95000 en archivos CSS y TypeScript.
El agente comprueba si hay desviaciones, encuentra el token desactualizado del repositorio y lo reemplaza por el color correcto.
Vista de inspección de Figma de un botón naranja con el texto "Regístrate. Empieza a aprender.", junto con detalles de espaciado, disposición y tokens de color.Vista de inspección de Figma de un botón naranja con el texto "Regístrate. Empieza a aprender.", junto con detalles de espaciado, disposición y tokens de color.

El camino hacia producción

El desarrollador ya terminó la barra de herramientas, los estados de selección de mensajes y el modal de confirmación, los tres a partir de componentes que mantiene el equipo. Solo queda la notificación temporal, que se creó durante el desarrollo y, hasta ahora, solo existe en el código. Todavía necesita un estado de error. El desarrollador le indica al agente que use use_figma para colocar la notificación temporal en el lienzo como capas editables, y el diseñador agrega el estado que falta con una acción de "Reintentar". Luego, el responsable de sistemas de diseño publica el nuevo componente y lo vincula con el código mediante Code Connect. La notificación temporal ahora funciona como todo lo demás en la biblioteca de Radicle.

A partir de ahí, el proceso es como el de cualquier otro lanzamiento. El desarrollador abre una solicitud de extracción y la diferencia de código corresponde principalmente a la lógica de la funcionalidad. Los ingenieros revisan el código y el diseñador comprueba una compilación de vista previa.

El servidor MCP de Figma y Code Connect le dan al agente acceso al mismo sistema con el que trabaja todo el equipo, de modo que el equipo puede centrarse en los detalles que dan forma a la experiencia de usuario en lugar de rehacer código generado por IA. Más tiempo para crear significa un mejor trabajo, no solo un trabajo más rápido.

Empieza a darle a tu agente un mejor contexto instalando el servidor MCP de Figma y conectándolo con el agente de programación que prefieras. Configura Code Connect para los componentes que tu equipo reutiliza con más frecuencia.

Lee todas las publicaciones de nuestro blog de la serie Workflow Lab para explorar otras formas de trabajar en Figma.

Crea y colabora con Figma

Registrarse gratis
Powered by Fruition