← Torna al diario

Come portare un flusso di lavoro Figma in un plugin Open Design

Il thread 0.8.0-preview chiede ai contributori di portare i vecchi flussi di lavoro di design un plugin alla volta. Ecco il percorso concreto per un export Figma, una sincronizzazione di token o un brand kit.

Come portare un flusso di lavoro Figma in un plugin Open Design

Un flusso di lavoro Figma di solito inizia come memoria muscolare: esporta questi frame, sincronizza quei token, ricostruisci quel template di deck, consegna le specifiche all'ingegneria. È il tipo di lavoro che vive nella testa di qualcuno e viene rispiegato ogni volta che inizia un nuovo progetto.

Il thread 0.8.0-preview fa una richiesta più netta: porta quella memoria muscolare in un plugin. Non un pannello bullonato su un canvas. Non uno script privato che solo un team può eseguire. Un flusso di lavoro Open Design riutilizzabile che un agente può raccogliere, eseguire, rivedere e passare avanti attraverso lo stesso ciclo local-first di qualsiasi altra attività di design.

Questa è la versione pratica della chiamata ai plugin di 0.8.0-preview. Se il tuo team ha oggi un flusso di lavoro di design ripetibile, questo articolo mostra cosa significa trasformarlo in un contributo a forma di plugin: di quali file ha bisogno, come l'agente lo raccoglie e dove finisce una volta pubblicato.

Il flusso di lavoro che vale la pena portare è più piccolo di quanto pensi

Non iniziare con "sostituisci Figma". Inizia con un singolo lavoro fastidioso e ripetibile.

Buoni candidati per un primo plugin:

Flusso di lavoro attualeVersione a forma di plugin
Esporta una pagina marketing Figma e ricostruiscila in codicePlugin figma-migration che estrae il layout, mappa i token e genera un artefatto web
Trasforma un brand kit in slide di lancio ogni mesePlugin di deck con un SKILL.md, asset di esempio e un design system bloccato
Crea lo stesso mockup di onboarding mobile per ogni clientePlugin per schermate mobile con campi di input per pubblico, tono, elenco di funzionalità e piattaforma
Converti una specifica di componenti in UI pronta per StorybookPlugin di migrazione del codice che legge il repository, mappa i componenti e scrive un diff revisionabile

L'unità non è l'intero reparto di design. L'unità è un flusso di lavoro che qualcuno già ripete due volte a settimana. Se non riesci a descriverlo in una singola frase — "trasforma X in Y, con questi vincoli" — probabilmente sono due plugin, non uno, e dovresti dividerlo prima di scrivere una riga di Markdown.

Ecco perché il livello di skill di Open Design conta qui. Un plugin non è un'estensione di runtime opaca. È una cartella di file: un contratto SKILL.md, design system opzionali, esempi opzionali e un file laterale open-design.json che dice a Open Design come visualizzare e applicare il flusso di lavoro. Non c'è alcun formato binario tra te e le regole, il che significa che chiunque può leggere il plugin, forkarlo o correggerlo in seguito.

Un frame di design che viene estratto da un canvas e inserito in una scatola modulare portabile, selezionato in una cornice verde su uno sfondo editoriale quasi bianco
Portare un flusso di lavoro significa sollevare la parte ripetibile dal canvas e metterla in un plugin portabile.

L'angolazione di Open Design è la portabilità

La specifica del plugin enuncia il contratto in modo chiaro: SKILL.md rimane il contratto eseguibile dell'agente, mentre open-design.json aggiunge metadati per il marketplace, campi di input, valori predefiniti, anteprime e collegamento del contesto.

Questo dà a un flusso di lavoro due vite. In Open Design, appare come un plugin con anteprima, input, provenienza e un percorso "usa" con un clic. In Claude Code, Cursor, Codex, Gemini CLI, OpenClaw o un altro catalogo di skill, la stessa cartella funziona ancora come una semplice skill di agente perché il comportamento principale vive in Markdown. Non stai scrivendo per un runtime che verrà deprecato l'anno prossimo; stai scrivendo un file che un agente leggerà allo stesso modo tra due anni.

La panoramica della libreria spiega già le primitive di base: skill, sistemi, adattatori e il daemon. I plugin aggiungono distribuzione e ripetibilità attorno a quelle primitive: sono l'unità che un team rilascia, rivede e riutilizza, anziché la skill grezza che un agente capita di scoprire su disco.

Per un flusso di lavoro da Figma a codice, le superfici di solito si presentano così:

SuperficieFile concreto
Comportamento dell'agenteSKILL.md
Metadati di Open Designopen-design.json
Contratto di brand o visivodesign-systems/{brand}/DESIGN.md
Output di esempioexample.html o examples/{plugin-id}/example.html dentro la cartella del plugin
Media di anteprimapreview/poster.png o preview/index.html dentro la cartella del plugin

Il risultato non è un generatore di screenshot. È un flusso di lavoro di agente riutilizzabile con un contratto visibile: ogni regola che l'agente segue è nella cartella dove un umano può leggerla e modificarla.

Un percorso di porting concreto

Ecco il percorso minimo per un plugin che porta un flusso di lavoro Figma per landing page. L'intera cosa è sei passi, e la maggior parte di essi è Markdown.

1. Nomina il lavoro ripetibile

Scrivi la singola frase che descrive il lavoro: "Trasforma un frame marketing Figma in una pagina Astro responsive, nel sistema di brand interno, pronta per la revisione." Se non riesci a farlo stare in una frase, restringilo finché non ci riesci. Il nome diventa l'id del tuo plugin (figma-workflow) e il titolo mostrato nel marketplace.

2. Scrivi il contratto della skill

SKILL.md è il contratto eseguibile che l'agente legge. Il front matter nomina la skill e il suo trigger; il corpo è il brief: forma dell'input, percorso dell'output, vincoli e una checklist di revisione che l'agente dovrebbe auto-applicare prima di passare il lavoro.

---
name: figma-workflow
description: Turn one Figma marketing frame into a responsive Astro page in the house brand system.
trigger: When the user provides a Figma frame URL, screenshot, or exported assets for a marketing page.
---

## Input
- A Figma frame URL, a screenshot, or a folder of exported assets.
- The target brand system (defaults to `house`).

## Output
- An Astro page at `src/pages/<slug>.astro`, plus extracted tokens.

## Constraints
- Map Figma styles to the brand system's tokens. Do not invent colors or type.
- Preserve section order and copy. Flag any text that does not fit the grid.
- Mobile-first: every section must reflow at 360px before desktop.

## Review checklist
- [ ] Section IDs match the source frame.
- [ ] No raw hex values — tokens only.
- [ ] Responsive behavior verified at 360 / 768 / 1280.

3. Aggiungi il file laterale di Open Design

open-design.json è ciò che trasforma una skill nuda in un plugin di marketplace: titolo, descrizione, input dichiarati, anteprima e repository sorgente. Questi sono i metadati che guidano il pannello "usa" e la riga di provenienza.

{
  "id": "figma-workflow",
  "title": "Figma workflow",
  "description": "Port one Figma marketing frame into a responsive Astro page.",
  "inputs": [
    { "key": "figmaSource", "label": "Figma URL or screenshot", "type": "string", "required": true },
    { "key": "brand", "label": "Brand system", "type": "string", "default": "house" }
  ],
  "preview": "preview/poster.png",
  "source": "https://github.com/your-org/your-plugins"
}

4. Collega il design system

Se il flusso di lavoro dipende da regole di brand, aggiungi un file DESIGN.md sotto design-systems/ invece di seppellire colore e tipografia nella prosa. L'agente ingerisce il sistema come un contratto — palette OKLch, scala tipografica, postura del layout — così dieci schermate generate sembrano ancora un unico prodotto. Anche mescolare sistemi a metà progetto funziona, perché sono solo testo.

5. Includi un esempio reale

Salva un artefatto generato sotto examples/ così i revisori possono giudicare l'output, non solo la promessa. Un singolo example.html noto come valido vale più di un paragrafo di descrizione; dà all'agente qualcosa su cui fare pattern-matching e dà a un maintainer qualcosa da approvare.

Messo insieme, il plugin è una singola cartella leggibile:

plugins/community/figma-workflow/
  SKILL.md              # the agent contract: trigger, output, constraints, review
  open-design.json      # marketplace metadata: title, inputs, preview, source
  design-systems/
    house/
      DESIGN.md         # the brand contract the agent must respect
  examples/
    figma-workflow/
      example.html      # one known-good artifact reviewers can judge
  preview/
    poster.png          # marketplace preview media

6. Valida e impacchetta

Esegui i comandi del plugin prima di aprire una PR. L'attuale percorso della CLI usa un id di plugin in minuscolo. Evita nomi di registro separati da slash al momento dello scaffold; od plugin scaffold crea <out>/<id>/..., quindi i comandi successivi puntano a quella cartella generata:

od plugin scaffold --id figma-workflow --title "Figma workflow" --out ./plugins/community
od plugin validate ./plugins/community/figma-workflow --no-daemon
od plugin pack ./plugins/community/figma-workflow

Quando il plugin è pronto per la revisione del registro, autenticati tramite GitHub con od plugin login e od plugin whoami --json, poi segui la documentazione di pubblicazione per l'attuale percorso di revisione. Open Design non memorizza le tue credenziali GitHub.

Come appare questo in un vero team di design

Immagina un piccolo team di prodotto con un frame Figma per una pagina di lancio, un sistema di brand interno e un ritmo di rilascio mensile.

Prima del plugin, il flusso di lavoro è una catena di passaggi di consegna: il designer esporta i frame, l'ingegnere ricostruisce il layout, il PM riscrive i testi, qualcuno controlla la deriva dei token, qualcun altro segnala i bug. Il lavoro è familiare, ma la memoria vive nelle persone, e si disperde ogni volta che qualcuno è assente, cambia team o dimentica l'unico vincolo che contava.

Dopo il plugin, il flusso di lavoro diventa un artefatto eseguibile:

PassoChi lo dirige
Scegli il pluginDesigner o PM
Allega URL Figma / screenshot / asset localiDesigner
Scegli il design systemDesigner o design engineer
Genera l'artefatto webClaude Code, Cursor, Codex, Gemini CLI o un altro agente rilevato
Rivedi ID di sezione, testi, densità e comportamento responsiveUmano nell'anteprima di Open Design
Esporta o consegna i fileLa stessa cartella di progetto locale

Il team ha ancora bisogno del gusto: il passo di revisione è dove vive, e nessun plugin lo sostituisce. Ciò che il plugin rimuove è il rispiegare: i vincoli, la mappa dei token e il percorso dell'output smettono di essere conoscenza tribale e diventano un file nel repository.

Cosa fare dopo

Se il tuo team ha un export Figma, una sincronizzazione di token, un brand kit o un template di deck che continua a tornare, porta prima la fetta ripetibile più piccola. Inizia con un SKILL.md, aggiungi open-design.json, collega il DESIGN.md del brand, inserisci un esempio reale, validalo e apri la PR prima che il flusso di lavoro cresca fino a diventare uno strumento privato che nessun altro può riutilizzare. L'esempio da screenshot a prototipo mostra la versione a forma di plugin dall'inizio alla fine: una skill portabile più un file laterale di Open Design.

Prova questo flusso di lavoro.

Letture correlate


← Torna al diario GitHub · Sorgente ↗