react-container-presentation-component
Ajuda seu agente a criar componentes React usando o padrão Container/Presentation. Ele segue as convenções do projeto para arquivos e estilo.
O que ela faz
Esta ferramenta cria componentes de código para um site ou aplicativo feito com React. Ela ajuda a organizar o código seguindo um padrão específico chamado 'Container/Presentation'.
Quando usar
- ✓Quando você quer criar um novo componente de código para seu projeto React.
- ✓Quando você precisa organizar melhor o código do seu projeto seguindo um padrão específico.
- ✓Quando você quer garantir que o código siga as regras de organização e estilo definidas.
Exemplo do que pedir para a IA
“Crie um componente React chamado 'UserProfile' seguindo o padrão Container/Presentation, classificado como 'ui'.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você informa o nome do componente e se ele é de 'ui' (interface) ou 'features' (funcionalidade). A ferramenta então cria os arquivos necessários, seguindo as regras de organização e estilo do projeto.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill react-container-presentation-componentOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/react-container-presentation-component/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Componente Container/Presentation
Use esta habilidade para criar um componente React em src/components que siga o padrão Container/Presentation.
Consulte as referências incluídas nesta habilidade para obter regras detalhadas.
references/component-architecture.mdreferences/typescript-and-scss-rules.md
Se a entrada /react-container-presentation-component estiver incompleta, faça perguntas antes de criar arquivos.
Quando Usar
- Quando o usuário executar
/react-container-presentation-component - Quando o usuário solicitar explicitamente um componente React que siga o padrão Container/Presentation
- Quando o usuário quiser ajuda para decidir ou implementar a classificação
uivsfeaturesdentro do padrão Container/Presentation
Perguntas Necessárias
Se alguma das seguintes informações estiver faltando, pergunte ao usuário usando ask_user.
- Nome do componente
- Tipo (
uioufeatures) - Se deve substituir componentes existentes (apenas ao criar
ui)
Requisitos das perguntas:
- Forneça o tipo como opções (
ui,features) - Exija que o nome do componente esteja em PascalCase
- Para
ui, pergunte se o uso direto de Mantine ou outras bibliotecas de UI emfeaturesexistentes deve ser substituído pelo novo componente
Procedimento
- Verificar componentes existentes
- Verifique se
src/components/ui/<ComponentName>ousrc/components/features/<ComponentName>já existem. - Se existir, não sobrescreva; confirme a abordagem preferida com o usuário.
- Decidir diretório de destino
ui:src/components/ui/<ComponentName>features:src/components/features/<ComponentName>
- Re-verificar classificação (apenas quando
uifor especificado)
- Mesmo quando
uifor especificado, antes de criar arquivos, reviseReclassification Ruleemreferences/component-architecture.md. - Se a implementação incluir gerenciamento de estado, efeitos colaterais, processamento assíncrono, atualizações de contexto/store ou lógica de negócios, trate-a como
features. - Se o resultado for mais próximo de
features, não prossiga comoui; useask_usere confirme uma das seguintes opções antes de continuar.Create as featuresKeep ui and move state/logic to parent or features
- Criar arquivos necessários
ui:index.tsx,index.module.scss,index.stories.tsxfeatures:index.tsx,use<ComponentName>.tsx,presentation.tsx,types.ts,presentation.module.scss,presentation.stories.tsx
- Substituir usos existentes (apenas ao criar
ui)
- Somente com a aprovação do usuário, substitua implementações diretas equivalentes usando Mantine ou outras bibliotecas de UI em
featuresexistentes pelo novo componenteui.
- Validar
- Execute os comandos de build e lint e certifique-se de que ambos passem; se problemas forem introduzidos por arquivos recém-adicionados ou atualizados, corrija-os.
- Siga
Storybook Minimumemreferences/component-architecture.mdpara decisões de estado do Story. - Pergunte ao usuário via
ask_userse deve executar uma verificação do Storybook (por exemplo: "Executar" / "Pular por enquanto"). - Execute
npm run storybooksomente se o usuário selecionar "Executar". - Se o usuário selecionar "Pular por enquanto", mencione explicitamente no relatório final que a execução do Storybook foi pulada.
Contrato de Saída
- Relate a lista de arquivos criados.
- Se substituições foram realizadas, relate a lista de arquivos alterados e detalhes da substituição.
- Forneça um exemplo de uso do componente criado.
- Relate se a verificação do Storybook foi executada (executada/pulada) e, se executada, inclua o comando usado.
- Explique por que o componente foi classificado como
uioufeatures. - Resuma onde o estado, os efeitos colaterais e as responsabilidades de renderização foram colocados.
- Confirme se houve alguma violação de direção de dependência.
- Declare claramente quaisquer itens não resolvidos.
Perguntas frequentes
O que é o padrão Container/Presentation?
É uma forma de organizar o código onde um componente ('container') cuida da lógica e dados, e outro ('presentation') cuida apenas de como mostrar as coisas na tela.
O que são 'ui' e 'features'?
'ui' são componentes que cuidam apenas da aparência, como botões ou campos de texto. 'features' são componentes que têm lógica, como buscar dados ou gerenciar um formulário.
O que acontece se um componente com o mesmo nome já existir?
A ferramenta não sobrescreve automaticamente. Ela pergunta o que você prefere fazer, como renomear ou não criar o componente.
Detalhes
Descrição original do autor
Create a React component using the Container/Presentation pattern in src/components by asking for the component name and type (ui or features), then scaffold files that follow this repository's TypeScript, Storybook, and SCSS conventions. Use when the user explicitly asks for a Container/Presentation-based component or runs /react-container-presentation-component.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5325
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
angular-developer
Ajuda seu agente a criar código Angular e a dar conselhos sobre a estrutura do projeto. É útil para iniciar novos projetos, criar partes do código ou melhorar a performance e acessibilidade.
affaan-m/ECC
frontend-a11y
Ajuda seu agente a tornar interfaces web acessíveis para todos. Ele garante que sites e apps funcionem bem com leitores de tela e navegação por teclado.
affaan-m/ECC
frontend-patterns
Faz seu agente aplicar padrões modernos no desenvolvimento frontend. Ele otimiza performance, gerencia estado e segue boas práticas em React e Next.js.
affaan-m/ECC