Skills (Slash Commands)
~30 min Intermediário Parte 2

Skills (Slash Commands)

Crie comandos /custom para automatizar tarefas repetitivas. Skills são prompts reutilizáveis que ficam disponíveis em qualquer sessão do Claude Code.

Skills são atalhos para prompts que você usa com frequência. Em vez de digitar o mesmo prompt detalhado toda vez, você cria um arquivo SKILL.md e chama com /nome-do-skill.

Estrutura de diretórios

Skills podem ser globais (disponíveis em todos os projetos) ou específicas de um projeto:

~/.claude/skills/
└── review-pr/
    └── SKILL.md

.claude/skills/        ← específico do projeto
└── daily-review/
    └── SKILL.md

Formato do SKILL.md

Cada skill é um arquivo Markdown com um frontmatter YAML. Os campos principais são name, description e user-invocable:

---
name: review-pr
description: Review a pull request for code quality, security, and best practices
user-invocable: true
argument-hint: "[PR number] (opcional)"
---

# Review PR

Analise o PR atual ou o número fornecido: $ARGUMENTS

Verifique:
1. Qualidade do código (clean code, SOLID)
2. Possíveis bugs ou edge cases
3. Segurança (SQL injection, XSS, secrets)
4. Performance
5. Testes adequados
6. Documentação

Formate a revisão com severidade: CRITICAL, MAJOR, MINOR, INFO.
Atenção: O campo trigger: não existe na API de skills. O nome da pasta define o comando — ~/.claude/skills/review-pr/SKILL.md vira /review-pr. Use user-invocable: true para tornar a skill invocável pelo usuário.

Como usar skills no terminal

Uma vez criada, a skill fica disponível como slash command no REPL do Claude Code:

/review-pr              # review PR atual
/review-pr 123          # review PR #123
/review-pr --security   # foco em segurança

Ideias de skills para você criar

Skills não vêm pré-instaladas. O poder está em criar as suas. Abaixo, seis ideias clássicas para começar — cada uma vira uma pasta em ~/.claude/skills/ com um SKILL.md dentro.

/commit Gera mensagem de commit semântico baseada nas mudanças staged Crie você
/test Gera testes unitários para o arquivo ou função atual Crie você
/explain Explica o arquivo ou função selecionada em linguagem clara Crie você
/refactor Refatora o código com boas práticas (SOLID, clean code) Crie você
/docs Gera documentação JSDoc/TSDoc para funções e classes Crie você
/optimize Analisa e otimiza performance do código atual Crie você

Skill com $ARGUMENTS e variáveis

Use $ARGUMENTS para capturar o que o usuário digitar após o trigger. Isso torna suas skills dinâmicas:

---
name: add-tests
description: Adiciona testes para o arquivo especificado
---

Leia o arquivo: $ARGUMENTS

Crie testes unitários completos:
- Happy path
- Edge cases
- Error handling

Use Jest/Vitest. Salve em __tests__/[filename].test.ts

Restringindo ferramentas com allowed-tools

O campo allowed-tools limita quais ferramentas o Claude pode usar durante a execução da skill. Isso aumenta a segurança e evita efeitos colaterais indesejados:

---
name: review-pr
description: Revisa pull requests sem modificar nenhum arquivo
user-invocable: true
allowed-tools: Bash(gh pr view *), Bash(git diff *), WebFetch, Read
---

# Review PR

Analise o PR $ARGUMENTS...
# O Claude só pode usar as ferramentas listadas — não pode editar arquivos
Padrão glob: Bash(git *) permite qualquer comando git. Bash(gh pr *) permite somente comandos gh pr. Sem allowed-tools, a skill herda todas as permissões da sessão atual.

Skills globais vs. de projeto

Caminho Escopo Disponível em
~/.claude/skills/ Global Todos os projetos
.claude/skills/ Projeto Apenas este projeto (pode ser commitado)

Exercício: criar skill /daily-review

Objetivo

Criar uma skill /daily-review que:

  • Lê os últimos commits do dia
  • Lista arquivos modificados
  • Gera um resumo do que foi feito

Solução

---
name: daily-review
description: Gera resumo das atividades do dia
user-invocable: true
---

# Daily Review

Execute os seguintes passos:

1. Rode `git log --since='00:00' --oneline --author=$(git config user.email)` para listar commits de hoje
2. Rode `git diff --name-only HEAD~$(git log --since='00:00' --oneline | wc -l | tr -d ' ') HEAD` para ver arquivos modificados
3. Com base nos commits e arquivos, gere um resumo executivo de:
   - O que foi implementado hoje
   - Quantos commits foram feitos
   - Quais áreas do código foram afetadas
   - Possíveis pendências ou próximos passos

Recursos

0%