# SPEC — Migração do plugin design-media para Open Design (OD) **Versão alvo:** design-media v3.0.0 **Data:** 2026-07-22 **Estado:** Rascunho — aguarda aprovação **Decisor:** Emanuel ## 1. Objectivo O Open Design (MCP `open-design`, daemon local) passa a ser o **motor único** de design do plugin design-media. Os motores actuais (design-engine Fibo/Gemini, Presenton, Stitch, Penpot, python-pptx directo, Remotion local) deixam de ser invocados directamente — tudo passa por projectos OD, skills OD e design systems OD. ## 2. Porquê - O OD já tem nativamente o que o plugin reimplementa: `brand-guidelines`, `brandkit`, `brand-extract`, `theme-factory`, `pptx-generator`, `pptx`, `slides`, `remotion`, `ui-ux-pro-max`, `imagegen`, `venice-*`/`fal-*` (imagem/vídeo/áudio). - 143 design systems instalados como plugins (`design-system-*`) + suporte a design systems custom por projecto (o projecto "Banners WiP Descomplicar" já usa `designSystemId: descomplicar`). - Permite **adaptar entre modelos disponíveis no OD** e **criar design systems por cliente** — requisito directo do Emanuel. ## 3. Âmbito ### 3.1 Design systems geridos no OD (novo pilar) - Formalizar o design system **`descomplicar`** no OD a partir dos tokens actuais (`skills/brand-guidelines/references/descomplicar-theme.md` YAML + `color-palettes.md`). - Fluxo **novo cliente**: skill OD `brand-extract` (site do cliente) → `theme-factory`/`brand-guidelines` → design system custom no OD, nome = slug do cliente. - Os brand packs em `Hub/04-Recursos/Design/brands/*.json` são migrados/sincronizados para design systems OD (o JSON local mantém-se como fonte exportável, mas o OD é a fonte operacional). - Os 4 design systems sectoriais (b2b, ecommerce, saude, solar) passam a design systems OD; as skills locais `design-{b2b,ecommerce,saude,solar}` são reduzidas a referência/routing. ### 3.2 Skills adaptadas (wrappers finos sobre OD) | Skill local | Passa a | |---|---| | `design` | Router: cria/reutiliza projecto OD, aplica design system, escolhe skill OD (`imagegen`, `slides`, `poster-hero`, etc.), `start_run` → `get_run` → entrega | | `brand-guidelines` | Gestão de design systems no OD (criar/actualizar/listar Descomplicar + clientes); mantém a norma escrita (tom, ®) | | `pptx-generator` | Wrapper das skills OD `pptx-generator`/`pptx`/`slides` com design system aplicado; python-pptx mantido só para leitura/QA de ficheiros existentes | | `remotion-video` | Wrapper da skill OD `remotion` (+ `venice-video`/`fal-*` quando fizer sentido) | | `clone-style` | Substituída pela skill OD `brand-extract` (wrapper) | | `cinematic-site` | Usa skills OD de web (`web-clone`, `frontend-design`) via projecto OD | | `ui-ux-pro-max`, `design-b2b/ecommerce/saude/solar` | Referência local mantida; apontam para design systems OD | ### 3.3 Agents actualizados - `design-lead`, `design-prompt-architect`, `design-generator`: MCPs alvo passam a `mcp__open-design__*`; remoção de referências a Penpot/Presenton/Stitch/design-engine como motores. - `design-critic`, `design-researcher`, `ui-designer`, `web-designer`, `video-production-specialist`: actualizar referências de ferramentas; lógica mantém-se. ### 3.4 Fora de âmbito - Alterar o OD em si (daemon, skills OD). - Migrar histórico de projectos antigos Presenton/Stitch. - Desligar os MCPs antigos da máquina (fica para limpeza posterior, decisão separada). ## 4. Critérios de aceitação 1. `/design` gera um artefacto real num projecto OD com design system `descomplicar` aplicado (prova: run `succeeded` + artefacto). 2. Design system `descomplicar` existe no OD com os tokens oficiais (cores/fontes verificadas contra `descomplicar-theme.md`). 3. Fluxo de cliente demonstrado: criar design system custom para 1 cliente de teste via `brand-extract`. 4. `pptx-generator` produz um deck via OD com brand Descomplicar. 5. `remotion-video` produz/inicia um vídeo via skill OD `remotion`. 6. Zero referências activas a Penpot/Presenton/Stitch/design-engine como motores nas skills/agents adaptados. 7. CHANGELOG.md + versão 3.0.0 + commit atómico. ## 5. Riscos - **Paridade de export**: garantir que o OD exporta PPTX/PNG/PDF nos formatos que os fluxos actuais (propostas, LinkedIn) exigem — validar cedo (crit. 4). - **Contexto activo OD expira ~5 min**: wrappers devem passar `project` explícito, nunca depender do contexto activo. - **Outputs grandes do MCP** (`list_plugins` ~270KB): wrappers devem usar filtros/ids directos, nunca listagens completas no contexto (regra 62). ## 6. Faseamento - **F1** — Design system `descomplicar` no OD + skill `brand-guidelines` adaptada. - **F2** — `design` (router) + agents lead/architect/generator. - **F3** — `pptx-generator` + `remotion-video` + `clone-style`→`brand-extract`. - **F4** — Sectoriais + cinematic-site + fluxo cliente de teste + QA final + CHANGELOG/commit.