Communitygithub.com

PingYang0717/frontend-design-skill

Inicialize um novo projeto frontend a partir de um protótipo UI/UX, seguindo os padrões da equipe (React 19 + Ant Design + TanStack Query + Zustand, estrutura de diretórios por camadas) e deixe-o pronto para ser implementado por um agente de codificação.

O que é frontend-design-skill?

Este skill automatiza a inicialização de projetos frontend a partir de protótipos UI/UX, garantindo que o código resultante siga os padrões uniformes da equipe. Ele analisa o protótipo para extrair requisitos, gera a estrutura do projeto (React 19, Ant Design, TanStack Query, Zustand, organização por camadas) e preenche toda a documentação necessária: README, AGENTS.md, ARCHITECTURE, GLOSSARY, contratos de API, especificações BDD e tarefas com screenshots. O skill é executado em cinco etapas: recepção (confirmação do diretório e coleta de informações), análise do protótipo com captura de tela, bootstrap do esqueleto do projeto, geração de documentação a partir de templates e validação final (lint, typecheck, testes, build). Ele para em pontos definidos para fazer perguntas quando algo está incerto e não implementa lógica de negócios – apenas cria a base e os artefatos para que um agente `/implement` possa começar o desenvolvimento das funcionalidades reais. O projeto de saída é compatível com skills do mattpocock/skills (como `/grill-with-docs`, `/implement`, `tdd`), usando `AGENTS.md` como fonte única de regras e `CLAUDE.md` apenas como arquivo de ponte.

Funciona com✓Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add PingYang0717/frontend-design-skill

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Frontend Project Bootstrap

Converte o protótipo UI/UX entregue em um "projeto frontend padronizado pela equipe + documentação preenchida + tarefas prontas para início". Isso garante que, posteriormente, diferentes pessoas e diferentes agentes de codificação escrevam código como se fosse a mesma pessoa.

Versão: veja a primeira entrada em CHANGELOG.md.

Princípios Centrais

  1. O protótipo é material de requisitos, não código a ser copiado para o projeto. Extraia dele telas, dados, paleta de cores e interações, sem copiar sua implementação; o arquivo original e as capturas de tela vão para o repositório como critério de aceitação.
  2. Os padrões da equipe são copiados na íntegra; o conteúdo do projeto é preenchido a partir do protótipo. O tratamento é diferente para esses dois tipos de arquivo (veja a "Tabela de Arquivos" abaixo).
  3. Em caso de dúvida, pergunte; não adivinhe. Faça perguntas em rodadas nos pontos de parada, cada pergunta com uma sugestão; "sim" significa aceitar a sugestão.
  4. Não implemente funcionalidades de negócio. Este Skill cria apenas a estrutura, páginas em branco e documentação; as funcionalidades de negócio serão desenvolvidas posteriormente pelo /implement com base nas tarefas.
  5. Só é concluído com validação. lint, typecheck, test, build tudo verde, sem placeholders residuais, cada tela com sua captura.

Entradas Necessárias

  • Protótipo (HTML único, HTML com múltiplas páginas, link de arquivo de design ou capturas de tela) com sua versão / data de entrega
  • Nome do projeto e uma frase de descrição
  • Localização da pasta do novo projeto (deve ser uma pasta vazia ou um novo repositório; se já tiver conteúdo, pare e confirme)

As demais informações (ambiente de deploy, situação do backend, idioma, modo escuro) são perguntadas na Etapa 1; detalhes em references/workflow-detail.md.

Preparação Inicial (uma vez por máquina)

cd <skill> && npm ci && npx playwright install chromium   # Playwright e Prettier usados em scripts/; não entram no esqueleto do projeto
# Se já tiver Chromium na máquina, pode pular o download; ao rodar o script de captura, use CHROMIUM_EXECUTABLE=<caminho>

Fluxo

Crie uma lista de tarefas para acompanhar as cinco etapas abaixo. Marque cada etapa como concluída ao finalizar.

Etapa 1: Recepção

Primeiro, confirme se a pasta do projeto não existe ou está vazia (se tiver conteúdo, pare e pergunte). Em seguida, confirme o arquivo do protótipo, a versão e o local compartilhado pela equipe. Pergunte os itens da tabela da Etapa 1 em references/workflow-detail.md que ainda não foram fornecidos nas mensagens.

Etapa 2: Análise do Protótipo e Captura de Tela

Leia references/prototype-analysis.md, siga seu método de análise e produza docs/_bootstrap/prototype-analysis.md (formato: templates/prototype-analysis.md). Quando o protótipo for HTML, ao mesmo tempo coloque o arquivo original em docs/prototype/, preencha docs/prototype/screens.json (formato: templates/prototype-screens.json) e execute o script de captura para gerar um PNG de cada tela.

⏸ Ponto de Parada: De acordo com o "Ponto de Parada" em references/prototype-analysis.md, faça perguntas em rodadas: questões a confirmar, comportamento padrão para estados omissos, modo de roteamento (history / hash), situação do backend. Após receber as respostas, registre-as nas seções 11 e 12 do arquivo de análise antes de prosseguir.

Etapa 3: Criação do Esqueleto

Copie assets/skeleton/ (excluindo node_modules), execute npm ci, e então, conforme a Etapa 3 de references/workflow-detail.md, altere nome, paleta de cores, modo de roteamento, rotas e menu, páginas em branco, e códigos de permissão. Mantenha a funcionalidade de exemplo do Item até que a primeira funcionalidade real seja concluída.

Etapa 4: Geração de Documentação

Conforme a tabela de correspondência da Etapa 4 em references/workflow-detail.md, copie e preencha os templates. Todos os <!-- FILL: --> devem ser preenchidos conforme as instruções e os comentários removidos; todos os {{PLACEHOLDER}} devem ser substituídos. Quando não souber, escreva "a confirmar" – não invente.

Etapa 5: Validação, Commit e Relatório

npm run lint && npm run typecheck && npm test && npm run build
node <skill>/scripts/check-placeholders.mjs <project>

A etapa só é concluída quando todas as quatro verificações estiverem verdes (lint sem warnings) e o script de verificação não apresentar nenhum ERROR. Em seguida, faça o primeiro commit.

Formato do relatório: veja a Etapa 5 em references/workflow-detail.md.

Quando o usuário não estiver presente: adote as sugestões com resposta sugerida e marque como "Adotado (provisório)"; para itens sem sugestão, escreva "a confirmar". Ambos devem ser listados no relatório. A única situação que deve interromper o fluxo é quando a pasta do projeto já possui conteúdo.

Tabela de Arquivos

Copiados na Íntegra (apenas substituir o nome, sem alterar o conteúdo)

CaminhoCopiar ParaConteúdo
assets/skeleton/Raiz do projetoEsqueleto executável: configs, camada de API, hooks de dados, DataBoundary, permissões, i18n, theme, MSW, testes, CI (Azure DevOps), template de PR, funcionalidade exemplo Item
references/standards/docs/conventions/18 padrões de desenvolvimento da equipe + índice
references/adr-baseline/docs/adr/ADR 0001–0016 + índice
templates/agents/docs/agents/Configuração de tracker e domain docs do mattpocock skills (local markdown, single-context)

Preenchidos a Partir do Protótipo

TemplateSaída
templates/prototype-analysis.mddocs/_bootstrap/prototype-analysis.md
templates/prototype-screens.jsondocs/prototype/screens.json (entrada para o script de captura)
templates/README.md, AGENTS.md, ARCHITECTURE.md, GLOSSARY.mdRaiz do projeto
templates/CLAUDE.mdRaiz do projeto (arquivo de ponte do Claude Code: uma linha de comentário seguida de @AGENTS.md, copiado na íntegra)
templates/prototype-README.mddocs/prototype/README.md
templates/adr-router-mode.mddocs/adr/0017-router-mode.md
templates/api-interface-auth.md, api-interface.md, api-checklist.mddocs/api/
templates/feature-spec.mddocs/specs/<feature>.md
templates/task.md, tasks-README.md, task-remove-example.mddocs/tasks/
templates/adr.md, bug-report.md, etc.Salvar uma cópia em docs/templates/ para uso futuro

Documentação e Ferramentas

CaminhoQuando Ler
references/workflow-detail.mdPara cada etapa, com instruções e tabelas
references/prototype-analysis.mdEtapa 2
scripts/screenshot-prototype.mjsEtapa 2 (re-executar se o protótipo mudar)
scripts/check-placeholders.mjsEtapa 5

Integração com mattpocock skills

A saída deste Skill é a entrada direta para mattpocock/skills; o projeto não precisa executar /setup-matt-pocock-skills novamente (se executar, ele apenas atualizará ## Agent skills em AGENTS.md e docs/agents/; não permita que ele escreva em CLAUDE.md).

Skill delesCorrespondência Aqui
/grill-with-docs, grillingO ponto de parada da Etapa 2 é o mesmo tipo de entrevista; use-o diretamente para mudanças de design futuras; termos vão para GLOSSARY.md, decisões para docs/adr/0018+
domain-modelingLê e escreve em GLOSSARY.md (mesmo formato) e docs/adr/ (formato da equipe, veja docs/agents/domain.md)
/to-spec, /to-ticketsNão usar. As especificações já estão em docs/specs/ (Gherkin numerado), as tarefas já estão em docs/tasks/ (com caminhos de arquivo por camada e componentes reutilizáveis)
/implementModo de implementação da primeira versão: uma docs/tasks/<ID>-*.md por vez, a partir do main branch criado pela tarefa; ele chamará tdd e code-review
tddSeams já estão documentados em "Test seams" em AGENTS.md; não é necessário discutir novamente
/implement-specPode ser usado, mas não testado: cada worktree precisa de npm ci (husky prepare); Azure DevOps não tem integração com draft PR

Compatibilidade com Ferramentas de Agente

AGENTS.md é a única fonte de regras. Opencode e Kimi Code CLI leem diretamente o AGENTS.md na raiz do projeto; Claude Code lê CLAUDE.md, por isso o esqueleto inclui um arquivo de ponte contendo apenas @AGENTS.md. Não escreva regras adicionais no arquivo de ponte.

Atualizando Este Skill

Se os padrões da equipe mudarem, altere este Skill (standards, adr-baseline, skeleton juntos), registre a mudança em CHANGELOG.md e aumente a versão; não faça alterações apenas em projetos individuais. Desvios em projetos específicos devem ser documentados como ADRs próprios do projeto (a partir de 0017). Após modificar o skeleton, execute sempre lint, typecheck, test, build em assets/skeleton/; após modificar Markdown, execute npm run format.

Habilidades Relacionadas