name: stitch-rails-pages description: Ensures new Rails views, layouts, and page-level UI in rails-pokedex are designed in Google Stitch and retrieved via MCP before coding. Use when creating ERB templates, layouts, partials, styling overhauls, or any new user-facing page; when refactoring views; or when the user mentions Stitch, UI de página, telas, or frontend Rails.
Stitch + Rails (rails-pokedex)
Objetivo
Nenhuma página nova (view ERB, layout substancial, ou fluxo de UI) deve ser inventada “do zero” sem passar pelo MCP Stitch: o design (HTML, tokens, hierarquia visual) vem do projeto Stitch e só depois é adaptado a Rails (ERB, helpers, link_to, image_tag, dados dinâmicos).
Servidor MCP
- Identificador típico no Cursor:
user-stitch(pastamcps/user-stitch/tools/). - Antes de qualquer chamada, ler o descritor JSON da ferramenta em
mcps/user-stitch/tools/<nome>.jsonpara parâmetros obrigatórios.
Ferramentas Stitch a usar
| Ferramenta | Uso |
|---|---|
list_projects | Descobrir o projeto (ex.: Pokédex) e obter name / id numérico. |
get_project | Detalhes do projeto, designTheme, instâncias de ecrã. |
list_screens | Listar ecrãs; argumento projectId sem prefixo projects/. |
get_screen | Obter HTML/screenshot de um ecrã; name no formato projects/{id}/screens/{screenId}. |
generate_screen_from_text | Gerar novo ecrã a partir de prompt (quando não existir ecrã adequado). |
edit_screens | Ajustar ecrã existente no Stitch antes de portar para Rails. |
generate_variants | Variantes de um ecrã para explorar alternativas. |
create_project | Só se for necessário um projeto Stitch novo (caso raro neste repo). |
Fluxo obrigatório (nova página ou refactor grande)
-
Resolver
projectId- Chamar
list_projectse localizar o projeto deste produto (título Pokédex / Field Journal / etc.), ou - Ler
.cursor/stitch.jsonno repo se existir:{ "projectId": "..." }(só o id, semprojects/).
- Chamar
-
Listar ecrãs
list_screenscomprojectId.
-
Obter referência visual
- Para o ecrã correspondente à página:
get_screencomnamecompleto retornado emlist_screens. - Se não houver ecrã:
generate_screen_from_textcom prompt alinhado ao pedido, depoisget_screenno resultado.
- Para o ecrã correspondente à página:
-
Portar para Rails
- Extrair estrutura, classes Tailwind/tokens e padrões do HTML Stitch.
- Implementar em ERB com dados reais (
@model, paths, CSRF, etc.). - Manter paridade visual com o Stitch; adaptações só por limitações de dados (campos inexistentes).
-
Testes
- Respeitar
.cursorrules: specs RSpec para comportamento alterado (request/system conforme o caso).
- Respeitar
O que não fazer
- Não criar layout “editorial” ou grid de cards sem consultar Stitch quando o objetivo é UI de produto neste projeto.
- Não copiar apenas uma captura: preferir
htmlCode(ou download do ficheiro HTML) para classes e estrutura. - Não assumir
projectIdfixo no texto da skill semlist_projectsou.cursor/stitch.json.
Progressive disclosure
- Convenções de layout partilhado: documentar em
reference.mdnesta pasta se o projeto crescer. - Detalhes da API Stitch: consultar descritores em
mcps/user-stitch/tools/.
Checklist rápido
-
projectIdconfirmado (lista ou.cursor/stitch.json) - Ecrã alvo listado e obtido via
get_screen(ou gerado + obtido) - View ERB alinhada ao HTML/tokens do Stitch
-
bundle exec rspecverde após mudanças de comportamento