Skill de design serve para vários projetos ou tem que refazer em cada repositório?

Skill de design não precisa ser refeita em cada repositório: o que muda é onde o arquivo mora. No Claude Code, skills em ~/.claude/skills são pessoais e valem para qualquer projeto, e skills em .claude/skills ficam versionadas no repo e chegam a quem clona. Havendo nomes iguais, a precedência é enterprise, depois pessoal, depois projeto, e skill de plugin usa namespace nome-do-plugin:nome-da-skill, então convive sem colidir. Na prática, quem trabalha com skills de design no Claude separa duas camadas: o método (reaproveitável, escopo pessoal) e o dicionário do produto (local, versionado no repositório)
Ninguém merece manter cinco cópias do mesmo padrão de interface espalhadas por cinco repositórios
Fala aí, beleza? Essa dúvida aparece sempre que alguém escreve a primeira skill de design caprichada: hierarquia visual, espaçamento, critério de acessibilidade, tom da interface, tudo redondinho
Aí abre o projeto novo e vem a pergunta: copia e cola de novo? mantém uma versão por repo? e quando mudar a regra, sai atualizando um por um?
A resposta curta é que quase nunca você reescreve o conteúdo
O que muda é ONDE o arquivo mora, e é isso que decide quem enxerga a skill, se ela viaja com o clone do projeto e quem ganha quando dois arquivos têm o mesmo nome
Bora destrinchar isso?
Pessoal, projeto ou plugin: onde guardar a skill de design
O Claude Code lê skills de níveis diferentes, e cada nível responde uma pergunta diferente de reaproveitamento
| Escopo | Onde fica | Quem enxerga | Entra no controle de versão? | Como o nome se comporta |
|---|---|---|---|---|
| Pessoal | ~/.claude/skills |
só você, em todos os seus projetos | não, é a sua máquina | nome simples, disputa com os outros níveis |
| Projeto | .claude/skills na raiz do repositório |
quem clona aquele repositório | sim, versionado no git | nome simples, disputa com os outros níveis |
| Plugin | instalado a partir de um marketplace | quem instalar o plugin | vive no repositório do plugin | namespace nome-do-plugin:nome-da-skill |
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
E quando o mesmo nome aparece em mais de um lugar?
A ordem de precedência é enterprise, depois pessoal, depois projeto
Na prática: se você tem uma skill deploy em ~/.claude/skills e o repositório também tem uma deploy em .claude/skills, quem roda é a pessoal
Skill vinda de plugin é o caso tranquilo, porque ela é namespaced
Um meu-plugin/skills/deploy/SKILL.md vira /meu-plugin:deploy e convive numa boa com a deploy do projeto, sem brigar por nome
A regra prática de escolha fica assim:
- é o SEU jeito de fazer interface, que você quer em qualquer projeto? escopo pessoal
- é regra daquele produto, que o time inteiro precisa receber? escopo de projeto, commitado
- é padrão que precisa atravessar times e organizações? plugin de marketplace
Quando o padrão de interface viaja e quando ele é específico demais
Aqui mora a parte que quase ninguém separa, e é justamente ela que gera manutenção duplicada
Tem coisa em design que é MÉTODO, e método viaja liso entre projetos:
- princípios de layout e de hierarquia visual
- critérios de acessibilidade que você não abre mão
- tom da interface (sóbrio, divertido, denso, respirado)
- checklist de revisão de tela antes de dar por pronto
- o jeito de justificar uma decisão visual em vez de só "ficou bonito"
E tem coisa que é DICIONÁRIO daquele produto, e dicionário não viaja:
- tokens de cor, tipografia e espaçamento daquele design system
- nomes dos componentes internos e o que cada um já resolve
- convenção de pastas e de nomenclatura daquele repositório
- as exceções históricas ("esse botão aqui é legado, não copie ele")
A fatura chega quando as duas camadas viram um arquivo só
Aí qualquer ajuste de método obriga a mexer em N repositórios, e qualquer token novo te empurra a editar a skill pessoal que não tem nada a ver com aquele produto
O corte que resolve é simples: o método vai pra skill pessoal em ~/.claude/skills, o dicionário vai pra skill de projeto em .claude/skills e é commitado, porque a de projeto viaja junto com o clone do repo
É a mesma lógica de quem reaproveita templates prontos de automação no n8n em vez de montar tudo do zero: você reusa o esqueleto e troca só o que é do cliente
Se você conhece a ideia de biblioteca compartilhada versus configuração local, é exatamente isso, só que em markdown 🙂
Um teste à parte: o que o Open Design me mostrou sobre o que viaja
Antes de seguir, um aviso pra ninguém misturar as coisas: o Open Design é OUTRA ferramenta, não é uma skill do Claude Code
Ele não usa o mecanismo de SKILL.md que a gente está destrinchando aqui, tem instalação e interface próprias, então nada do fluxo dele serve como passo pra configurar skill
Citei ele porque a lição de reaproveitamento bateu certinho com o assunto do post
Criei projetos diferentes dentro da MESMA base: primeiro uma landing page de SaaS, depois uma apresentação em slides sobre o mesmo projeto
E é aí que a ficha cai sobre o que viaja e o que não viaja
O que se manteve foi a base: ter design system pronto me poupou de planejar tipografia e paleta de cores do zero a cada projeto novo
O que precisou ser decidido por projeto foi a escolha do design system e o nível de fidelidade, que acontecem na criação de cada projeto e não ficam presas ao projeto anterior
Teve ajuste de contexto também: configurei o idioma pra português, porque na minha experiência essas ferramentas tendem a gerar conteúdo em inglês por padrão
E durante a geração a ferramenta fez perguntas de contexto de marca e de direção visual antes de entregar a primeira versão, ou seja, o específico do produto entra na conversa, não no padrão reaproveitado
Traduzindo isso pro mundo das skills do Claude Code: o que se manteve é o que merece virar skill pessoal, e o que mudou a cada projeto é o que merece virar skill de projeto
No vídeo abaixo eu mostro esse fluxo inteiro na prática, do setup até o projeto pronto:
Como distribuir a mesma skill de design sem manter cópias
Agora o passo a passo do que dá pra fazer hoje, só com o que está documentado
- Crie a pasta da skill com um
SKILL.mddentro
Toda skill é uma pasta com um arquivo SKILL.md, formado por frontmatter YAML entre os marcadores --- e o conteúdo em markdown
---
name: design-review
description: Revisa telas e componentes de interface aplicando hierarquia visual, espaçamento e acessibilidade. Use ao criar ou revisar UI.
---
## Como revisar uma tela
1. Confira a hierarquia visual antes de olhar cor
2. Valide contraste e alvo de toque
3. Justifique cada decisão em uma frase
O erro comum aqui é jogar as instruções num arquivo solto sem a pasta e sem o frontmatter, e depois estranhar que nada acontece
- Escreva o
descriptionpensando em GATILHO, não em título
O campo description do frontmatter é o que o Claude usa pra decidir se a skill é relevante pro pedido
Escreva o que ela faz E quando usar
O erro comum é description: skill de design, que não diz ao modelo em que momento ela serve
- Decida o escopo movendo o arquivo, não reescrevendo ele
Se é o seu método, vai pra ~/.claude/skills e passa a valer em todos os seus projetos
Se é regra daquele produto, vai pra .claude/skills na raiz do repositório
O erro comum é deixar tudo no pessoal e depois descobrir que o time nunca recebeu a regra
- Commite
.claude/skillspro time receber ao clonar
git add .claude/skills
git commit -m "add skill de design do projeto"
Skills de projeto entram no controle de versão e chegam a quem clona o repo, é esse o mecanismo de distribuição pro time
O erro comum é a pasta cair no .gitignore junto com outras configs locais, e aí a skill nunca sai da sua máquina
- Pra atravessar projetos e times, empacote como plugin de marketplace
Um marketplace de plugins do Claude Code é um repositório git (ou um diretório local) com o arquivo .claude-plugin/marketplace.json, que cataloga os plugins e diz de onde buscar cada um
Ele suporta fontes em repositório git e caminhos locais, com descoberta centralizada e atualização
O erro comum é confundir marketplace com plugin instalado: ter o marketplace não instala nada, a instalação é individual
- Instale pelo
/plugine teste com um exemplo oficial
O comando /plugin abre o navegador de plugins pra descobrir e instalar a partir dos marketplaces, e a instalação direta segue o formato /plugin install nome-do-plugin@nome-do-marketplace
O marketplace claude-plugins-official é mantido pela Anthropic e já vem disponível, sem precisar adicionar na mão
Quer ver de perto como uma skill de design distribuída assim se parece? tem o plugin oficial frontend-design, cuja skill vive em plugins/frontend-design/skills/frontend-design/SKILL.md no repositório anthropics/claude-code
/plugin install frontend-design@claude-plugins-official
O erro comum é tentar instalar sem o @nome-do-marketplace e ficar batendo cabeça com o nome do plugin sozinho
E tem um bônus de portabilidade: as Agent Skills usam o mesmo formato nos apps do Claude, no Claude Code e na API, e o formato foi publicado como padrão aberto
No Agent SDK a lógica é a mesma, skills são artefatos de sistema de arquivos, cada uma na sua pasta com um SKILL.md em .claude/skills/<nome>/SKILL.md
Problemas comuns ao reaproveitar a skill em vários repositórios
A skill do projeto simplesmente não roda
Sintoma: o repo tem a regra certinha em .claude/skills, mas o comportamento que aparece é o antigo, o seu de sempre
Causa: existe uma skill de mesmo nome no seu escopo pessoal, e a precedência é enterprise, depois pessoal, depois projeto
Com uma deploy em ~/.claude/skills e outra em .claude/skills, roda a pessoal
Correção: renomeie um dos lados, ou tire do pessoal aquilo que já virou regra do produto
Prevenção: combine um prefixo pros nomes de projeto e deixe o pessoal com nomes claramente seus
Se é padrão que precisa vencer em qualquer lugar sem essa disputa, empacote como plugin, porque skill de plugin usa namespace e não colide
A skill existe mas o Claude nunca lembra dela
Sintoma: você pede uma tela, ele entrega do jeito dele, e a sua skill de design fica lá quietinha
Causa: no início da sessão o Claude enxerga só nome e descrição das skills disponíveis, e carrega o SKILL.md inteiro apenas quando decide que aquilo é relevante
Se o description não diz quando a skill serve, ela não é acionada
Correção: reescreva o description dizendo o que a skill faz e em que situação usar, com as palavras que você realmente usa no pedido
Prevenção: trate o description como a parte mais importante do arquivo, não como enfeite do frontmatter
Tome cuidado com descrição genérica: ela é o gatilho de relevância, e conteúdo bom atrás de descrição vaga é conteúdo que nunca carrega
O comando e a skill têm o mesmo nome
Sintoma: você chama /deploy esperando o comando de sempre e vem outro comportamento
Causa: se uma skill e um comando têm o mesmo nome, a skill tem precedência
Com .claude/commands/deploy.md e .claude/skills/deploy/SKILL.md no mesmo projeto, /deploy executa a skill
Correção: renomeie um dos dois, e prefira o nome mais específico pro que for mais raro de usar
Prevenção: antes de criar skill nova, dê uma olhada nos comandos que o repositório já tem, principalmente nos nomes curtinhos tipo build, test e deploy
Conclusão
Então, respondendo direto: não é refazer a skill de design em cada repositório
É escolher o nível certo e separar o que é MÉTODO do que é dicionário do produto
Método (princípios, hierarquia, acessibilidade, checklist de revisão) sobe pro escopo pessoal em ~/.claude/skills e passa a valer em qualquer projeto seu
Dicionário (tokens, componentes internos, convenções daquele repo) fica em .claude/skills, commitado, chegando a quem clona
E quando o padrão precisa atravessar times, ele vira plugin de marketplace, com namespace próprio e sem briga de nome
Próximo passo sugerido: pega a sua skill atual, corta ela em duas nessas linhas, e testa em dois projetos bem diferentes pra ver o que continua fazendo sentido e o que era específico demais pra viajar
É um teste de dez minutos que economiza meses de manutenção duplicada 😀
Até o próximo post!
Perguntas frequentes
A skill de design que eu guardo em ~/.claude/skills funciona em qualquer projeto sem eu precisar reinstalar nada?
Sim. O Claude Code carrega skills pessoais direto da pasta ~/.claude/skills, e elas ficam disponíveis em todos os seus projetos automaticamente. Não existe passo de instalação por repositório nesse escopo, é a sua máquina que enxerga a skill em qualquer lugar que você abrir o Claude Code.
Se eu tiver a mesma skill de design no nível pessoal e também dentro do projeto, qual das duas roda?
A ordem de precedência é enterprise, depois pessoal, depois projeto. Então uma skill ‘deploy’ em ~/.claude/skills ganha de uma ‘deploy’ dentro de .claude/skills do repositório, mesmo que as duas tenham o mesmo nome.
Preciso commitar a pasta .claude/skills pra minha equipe receber a mesma skill de design?
Sim, é justamente esse o caminho. A skill de projeto fica em .claude/skills na raiz do repositório, entra no controle de versão e chega pra quem clona o repo, então commitar essa pasta é o que distribui a skill pro time inteiro.
Uma skill de design instalada por plugin pode ter o mesmo nome de uma skill que já existe no meu projeto?
Pode conviver sem conflito. Skill vinda de plugin usa o formato nome-do-plugin:nome-da-skill, então um meu-plugin/skills/deploy/SKILL.md vira /meu-plugin:deploy e não disputa nome com a skill deploy do projeto ou com a pessoal.
Como o Claude Code decide qual skill de design usar pra um pedido específico?
O campo description do frontmatter do SKILL.md é o gatilho de relevância. No início da sessão o Claude enxerga só nome e descrição de cada skill disponível, e carrega o conteúdo completo do SKILL.md apenas quando decide que aquela skill é relevante pro pedido.
Dá pra usar a mesma skill de design nos apps do Claude, no Claude Code e também via API?
Dá, porque as Agent Skills usam o mesmo formato SKILL.md nas três superfícies. Esse formato é publicado como padrão aberto, o que torna a mesma skill portátil entre os apps do Claude, o Claude Code e a API sem precisar reescrever nada.
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
