---
name: criador-de-slash-command
description: "Guia completo para criar slash commands personalizados no Claude Code e Claude Cowork. Ativar quando o usuário quer: (1) criar um novo /comando que não existe ainda, (2) automatizar uma tarefa repetitiva que pode ser chamada por /nome, (3) criar uma skill do zero com passo a passo, (4) adicionar um comando personalizado ao Claude Code ou Cowork. Exemplos de frases: 'cria um slash command', 'quero um comando /deploy', 'como faço um /nome', 'criar comando personalizado', 'novo slash command', 'fazer uma skill', 'criar um /comando que faça X'."
argument-hint: "[nome-do-comando] [--projeto]"
author: "Rafa Marks - Founder Hackers Do Marketing & Advantage Marketing Strategy"
allowed-tools:
  - Read
  - Write
  - Bash
  - Glob
---

<objetivo>
Guiar o usuário na criação de um slash command personalizado para Claude Code e Claude Cowork — do zero até funcionar, sem precisar saber programar.

Resultado entregue: arquivo SKILL.md instalado no lugar certo, testado e pronto para usar com `/nome-do-comando`.
</objetivo>

<onde-funciona>
## Onde slash commands funcionam

| Plataforma | Suporte | Observação |
|---|---|---|
| **Claude Code** (CLI, VS Code, Desktop) | Sim, total | Foco principal desta skill |
| **Claude Cowork** | Sim, mesmo sistema | Mesmo formato, mesma pasta |
| **Claude.ai** (site normal) | Não | Não suporta comandos personalizados do usuário |

</onde-funciona>

<workflow>

## Passo 1 — Entender o que o usuário quer criar

Fazer estas perguntas antes de qualquer outra coisa:

**a) Nome do comando:**
- Como o usuário vai chamar? Exemplos: `/deploy`, `/criar-post`, `/resumir`, `/gerar-relatorio`
- Regras: só letras minúsculas e hífens, sem espaços, máximo 64 caracteres
- Formato correto: `meu-comando` (não: `meu comando`, não: `MeuComando`)

**b) O que o comando vai fazer?**
- Descrever em 1-2 frases o que deve acontecer quando o usuário digitar `/nome`
- Exemplos: "envia o código atual para o servidor", "resume o conteúdo do arquivo aberto", "cria um novo post no formato padrão"

**c) Vai receber texto depois do comando?**
- Sim → o usuário vai digitar `/nome [algum texto]` — precisamos capturar esse texto
- Não → o comando executa sozinho sem precisar de nada extra

**d) Para todos os projetos ou só para este?**
- Global: funciona em qualquer projeto → instalar em `~/.claude/skills/`
- Projeto: só funciona nesta pasta → instalar em `.claude/skills/`

</workflow>

<criacao>

## Passo 2 — Criar a estrutura de pastas

Após coletar as respostas, executar:

### Para escopo global (recomendado na maioria dos casos):
```bash
mkdir -p ~/.claude/skills/<nome-do-comando>
```

### Para escopo de projeto:
```bash
mkdir -p .claude/skills/<nome-do-comando>
```

Verificar se criou corretamente:
```bash
ls ~/.claude/skills/<nome-do-comando>/
# ou
ls .claude/skills/<nome-do-comando>/
```

</criacao>

<escrita>

## Passo 3 — Escrever o arquivo SKILL.md

Criar o arquivo `SKILL.md` dentro da pasta criada. Usar o template abaixo como base e preencher com as informações do usuário:

```markdown
---
name: <nome-do-comando>
description: "<descrever O QUE faz + QUANDO usar + exemplos de frases que disparam o comando>"
argument-hint: "<dica do que vem depois do /comando, ex: [texto] | [arquivo] | --opcao>"
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Glob
  - Grep
---

## Objetivo
[O que este comando faz em 1-2 linhas claras]

## Instruções
[Passo a passo do que Claude deve fazer quando este comando é ativado]

## Argumentos recebidos
$ARGUMENTS

## Exemplo de uso
`/<nome-do-comando> [argumento opcional]`
```

### Guia para preencher o frontmatter:

**`description`** — a parte mais importante. Deve responder:
- O que faz?
- Quando usar? (situações concretas)
- Exemplos de frases que o usuário vai digitar

Máximo 1024 caracteres. Exemplo de boa description:
```
"Cria um novo post formatado no padrão do projeto. Usar quando o usuário pedir
para criar um post, escrever um artigo novo, ou adicionar conteúdo ao blog.
Exemplos: 'cria um post sobre X', 'novo artigo', 'adiciona um post'."
```

**`argument-hint`** — só incluir se o comando recebe texto. Mostrar o formato esperado:
- `/resumir [texto ou arquivo]` → `argument-hint: "[texto ou arquivo]"`
- `/deploy --staging` → `argument-hint: "[--staging] [--prod]"`

**`allowed-tools`** — listar apenas as ferramentas que o comando vai usar:

| Se o comando vai... | Incluir |
|---|---|
| Ler arquivos | Read, Glob |
| Criar ou editar arquivos | Write, Edit |
| Rodar comandos no terminal | Bash |
| Buscar texto em arquivos | Grep |
| Pesquisar na internet | WebSearch, WebFetch |
| Fazer perguntas ao usuário | AskUserQuestion |

</escrita>

<teste>

## Passo 4 — Testar o comando

Após criar o arquivo SKILL.md:

1. **Verificar que o arquivo existe:**
   ```bash
   cat ~/.claude/skills/<nome-do-comando>/SKILL.md
   ```

2. **Reiniciar o Claude Code** — novas skills só aparecem após reiniciar:
   - Fechar a conversa atual
   - Abrir uma nova conversa

3. **Testar digitando:**
   ```
   /<nome-do-comando>
   ```
   Ou com argumento:
   ```
   /<nome-do-comando> meu texto aqui
   ```

4. **Se não funcionar:**
   - Verificar que o nome no arquivo é igual ao nome da pasta
   - Verificar que o arquivo se chama exatamente `SKILL.md`
   - Confirmar que o frontmatter começa com `---` e termina com `---`

</teste>

<cowork>

## Claude Cowork — mesmo sistema

Claude Cowork usa o mesmo mecanismo de skills. O arquivo `SKILL.md` criado para Claude Code funciona automaticamente no Cowork também — mesmo formato, mesma pasta `~/.claude/skills/`.

Não é necessário fazer nada diferente. A skill criada nos passos acima já funciona nos dois.

</cowork>

<erros-comuns>

## Erros comuns a evitar

| Erro | Problema | Solução |
|---|---|---|
| Description vaga: "faz coisas úteis" | Claude não sabe quando ativar | Incluir situações concretas e exemplos de frases |
| Esquecer ferramentas no allowed-tools | Comando trava ao tentar usar ferramenta não autorizada | Listar todas que serão usadas |
| Nome com espaços ou maiúsculas | Não funciona | Usar sempre kebab-case: `meu-comando` |
| SKILL.md com mais de 500 linhas | Consome muito contexto e fica lento | Mover detalhes extras para pasta `references/` |
| Não reiniciar após criar | Skill não aparece | Fechar e abrir nova conversa |
| Omitir `$ARGUMENTS` quando usa argumentos | Texto digitado pelo usuário é ignorado | Incluir `$ARGUMENTS` no corpo da skill |

</erros-comuns>

<context>
$ARGUMENTS
</context>
