🧠FFVAcademy

Skills e slash commands: criar seus próprios workflows

13 min de leitura·+65 XP
Pré-requisitos (0/1)0%

Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.

Toda vez que você pede a Claude Code para fazer a mesma coisa — "revise este código por questões de segurança", "gere uma descrição para o PR", "faça deploy no ambiente de staging" — você está repetindo um workflow que poderia ser um slash command. Skills transformam prompts repetitivos em comandos de uma palavra invocáveis em qualquer sessão.

Anatomia de um slash command

# Skills ficam em .claude/commands/ como arquivos Markdown
# Nome do arquivo = nome do comando (sem .md)

# Exemplo: .claude/commands/commit.md → /commit
# Exemplo: .claude/commands/code-review.md → /code-review
# Exemplo: .claude/commands/deploy.md → /deploy staging v2.1

# Estrutura de um arquivo de skill:

---
# Este bloco de frontmatter é opcional mas recomendado
description: Cria um commit com mensagem no formato Conventional Commits
---

Analise as mudanças staged com `git diff --staged` e crie um commit seguindo estas regras:

1. Formato: `tipo(escopo): descrição curta em PT-BR`
   - tipos: feat, fix, refactor, docs, test, chore, style, perf
   - escopo: componente ou módulo afetado (opcional)
   - descrição: máximo 72 caracteres, imperativo, sem ponto final

2. Se as mudanças cobrem múltiplos contextos, use commit com bullet points no body.

3. Nunca use --no-verify. Se o pre-commit falhar, investigue e corrija.

4. Após o commit bem-sucedido, confirme com: "✓ Commit criado: [mensagem]"

# Para invocar: /commit
# Claude Code carrega este arquivo, injetado como prompt do usuário

Skill com argumentos: workflows parametrizáveis

# .claude/commands/pr-review.md
# Uso: /pr-review 42 ou /pr-review https://github.com/org/repo/pull/42

Revise o Pull Request: $ARGUMENTS

Processo:
1. Use o MCP do GitHub para buscar o PR (número ou URL fornecido)
2. Leia o diff completo
3. Analise por estas dimensões (sem ser condescendente ou genérico):
   - Segurança: há possibilidade de injeção, vazamento de dados, permissão indevida?
   - Performance: loops O(n²), N+1 queries, blocking I/O desnecessário?
   - Manutenibilidade: a lógica está clara? há duplicação evitável?
   - Cobertura de edge cases: o que acontece com inputs inválidos, lista vazia, null?
   - Alinhamento com padrões do projeto (cheque o CLAUDE.md para convenções)

4. Formato da resposta:
   ### ✅ Aprovado / ⚠️ Mudanças necessárias / ❌ Bloqueado

   **Problemas críticos** (bloqueia merge):
   - ...

   **Sugestões** (não bloqueia, mas vale considerar):
   - ...

   **Pontos positivos** (o que está bem feito):
   - ...

5. Se não há problemas: "Aprovado ✅ — PR pode ser mergeado"

---
# .claude/commands/new-component.md
# Uso: /new-component NomeDoComponente

Crie um novo componente React: $ARGUMENTS

Siga o padrão dos componentes existentes em src/components/:
1. Leia 2-3 componentes similares para entender o padrão usado
2. Crie src/components/$ARGUMENTS.tsx com:
   - Props tipadas (interface ou type)
   - JSDoc na interface de Props
   - Named export (não default export)
   - Sem estado interno se possível (prefira componentes controlados)
3. Exporte no src/components/index.ts se existir
4. Confirme o que foi criado e próximos passos

Skills essenciais para qualquer projeto de software

SkillO que fazInvocação
/commitGera commit Conventional Commits com diff staged/commit
/pr-review [num]Revisa PR por segurança, performance e padrões/pr-review 42
/deploy [env]Deploy no ambiente especificado com checklist/deploy staging
/doc [arquivo]Gera documentação para arquivo ou função/doc src/auth.ts
/security-checkVarre o projeto por vulnerabilidades conhecidas/security-check
/changelogGera CHANGELOG.md a partir dos commits desde último tag/changelog
/translate [lang]Traduz strings de UI para outro idioma/translate en-US
# .claude/commands/deploy.md
# Uso: /deploy staging ou /deploy production

Executar deploy no ambiente: $ARGUMENTS

ATENÇÃO: Se o ambiente for "production", exija confirmação explícita antes de qualquer ação.

Checklist antes de qualquer deploy:
1. Verificar que não há mudanças não commitadas: git status
2. Verificar que os testes passam: npm test
3. Verificar que o build está limpo: npm run build
4. Para produção: verificar que está na branch main e o último commit é recente

Se algum item do checklist falhar, PARE e informe o problema. Não continue o deploy.

Se o ambiente for "staging":
- Execute: ./scripts/deploy.sh staging
- Aguarde confirmação de sucesso
- Reporte a URL de staging ao final

Se o ambiente for "production":
- Exiba o checklist e peça confirmação explícita: "Confirme digitando 'DEPLOY PRODUCTION'"
- Só prossiga após confirmação textual explícita
- Execute: ./scripts/deploy.sh production
- Monitore o rollout por 5 minutos
- Verifique os health checks configurados

Skills globais vs de projeto: organização

# Dois locais para skills:

# 1. ~/.claude/commands/ — globais (disponíveis em TODOS os projetos)
~/.claude/commands/
├── commit.md              # /commit — padrão pessoal de commit
├── explain.md             # /explain — explique o código selecionado
└── quick-doc.md           # /quick-doc — gera docstring rapidamente

# 2. .claude/commands/ (projeto) — compartilhados com o time via git
.claude/commands/
├── deploy.md              # /deploy — específico deste projeto
├── pr-review.md           # /pr-review — padrões de review da equipe
├── new-component.md       # /new-component — padrão de componente React do projeto
└── security-check.md      # /security-check — checklist de segurança do projeto

# Regra de prioridade:
# - Skills de projeto têm prioridade sobre globais com mesmo nome
# - /commit no projeto pode sobrescrever /commit global se tiver convenções diferentes

# Descobrir skills disponíveis na sessão:
/help    # lista todos os comandos disponíveis, incluindo seus skills customizados

# Boas práticas de skills:
# ✅ Instrua Claude a ler arquivos relevantes antes de agir (contexto primeiro)
# ✅ Defina formato de saída esperado (evita variação entre execuções)
# ✅ Adicione checklist para ações destrutivas (deploy, deletar dados)
# ✅ Documente no CLAUDE.md quais skills existem e para que servem
# ❌ Não crie skills muito genéricos ("faça o que for necessário") — seja específico
# ❌ Não duplique o que o CLAUDE.md já cobre — skills são para workflows, não contexto

Skill avançado: geração de especificação técnica

# .claude/commands/spec.md
# Uso: /spec [feature] — gera especificação técnica antes de implementar

Gere uma especificação técnica para: $ARGUMENTS

Antes de escrever qualquer código, produza um documento SPEC.md com:

## 1. Problema
O que estamos resolvendo? Por que isso importa?

## 2. Decisões de design
- Quais são as 2-3 abordagens possíveis?
- Para cada uma: trade-offs, complexidade, manutenabilidade
- Decisão escolhida e justificativa

## 3. Interface pública
- Quais funções/componentes/rotas serão criados/modificados?
- Tipos e assinaturas exatas
- Exemplos de uso

## 4. Casos de borda
- O que acontece com input inválido?
- O que acontece com falha de rede/banco?
- Limites de volume (quantos usuários, quantos registros)

## 5. Plano de implementação
- Passos ordenados de implementação
- Quais arquivos criar/modificar
- Estimativa de complexidade (S/M/L/XL)

## 6. Critérios de aceite
- Como verificar que está funcionando?
- Quais testes cobrir?

---
Após gerar o SPEC.md, aguarde aprovação antes de começar a implementação.
Escreva: "Especificação gerada em SPEC.md. Revise e diga 'implementar' para prosseguir."
Skills como padrão do time: todo workflow repetitivo que a equipe faz mais de 3 vezes por semana merece um slash command. Commite em .claude/commands/, documente no CLAUDE.md, e o time inteiro se beneficia. A padronização reduz variação de qualidade — /pr-review sempre segue os mesmos critérios, /deploy sempre tem o mesmo checklist de segurança.
💡
Próximo: API da Anthropic — como usar a API Messages diretamente para construir aplicações com Claude integrado: streaming, vision, batch e prompt caching.
🧩

Quiz rápido

3 perguntas · Acerte tudo e ganhe o badge 🎯 Gabarito

Continue lendo