Tank não pilota, não combate, não decide. Mas é a mão que disca o programa que faz Trinity voar.
O que é um Command?
Quatro características que transformam uma barra e um nome em uma ordem direta ao agente.
Atalho de invocação
Uma barra, um nome, uma ação. Substitui o parágrafo de instrução por um único token.
Arquivo Markdown
Mora em .claude/commands/ como um .md simples, com frontmatter opcional.
Prompt versionado
O conteúdo do arquivo vira o prompt do agente. Sai do README, entra no time.
Disparo determinístico
Sem inferência. Sem ambiguidade. A barra é uma ordem, não uma sugestão.
Commands · Skills · Hooks
Três peças do mesmo ecossistema, três papéis diferentes. Confundi-las custa caro.
Onde os commands moram
Cada arquivo Markdown na pasta vira um slash command. O nome do arquivo é o nome do comando.
# Project commands: ficam dentro do repositório .claude/ └── commands/ ├── revisar.md # vira /revisar ├── deploy.md # vira /deploy └── git/ ├── commit.md # vira /git:commit └── pr.md # vira /git:pr # User commands: ficam no home, valem em qualquer projeto ~/.claude/ └── commands/ ├── resumir.md # vira /resumir └── brainstorm.md # vira /brainstorm
Project commands
Vivem com o código. Vão para o Git, são compartilhados pelo time.
User commands
Vivem no seu home. Funcionam em qualquer pasta, são só seus.
Anatomia
O caminho de uma barra
Você digita /comando. O Claude lê o arquivo, substitui os argumentos, manda como prompt. Três etapas, zero ambiguidade.
Markdown é o command
Sem código. Sem dependências. O conteúdo do arquivo vira o prompt do agente quando você digita a barra.
Nome do arquivo vira o nome do comando
O corpo do arquivo é o prompt enviado
Frontmatter é opcional, não obrigatório
# Resumir mudancas Olhe o diff atual com git diff e me devolva um resumo em ate cinco bullets. Cada bullet deve responder: - O que mudou - Por que mudou (se der pra inferir) - Qual o risco se quebrar
No terminal: /resumir. O agente recebe o texto acima como prompt.
--- description: Revisa um pull request do GitHub argument-hint: <pr-number> allowed-tools: Bash, Read --- # Revisar PR #$1 Busque o diff do PR $1 no GitHub e analise: 1. Mudancas que podem quebrar producao 2. Falta de testes para o caminho feliz 3. Codigo morto ou comentado Argumentos completos recebidos: $ARGUMENTS
Você digita
/revisar 423
Agente recebe
$1 = "423"
O command que recebe input
Três placeholders fazem o trabalho. O Claude troca por texto antes de mandar ao agente.
Tudo que veio depois da barra
Cada palavra posicional, separadas por espaço
Aparece no autocomplete do terminal
O frontmatter que controla tudo
Quatro chaves opcionais decidem nome, ferramentas permitidas, modelo e dica de uso.
--- description: Faz deploy seguro para staging com verificacoes argument-hint: <ambiente> allowed-tools: Bash, Read, Grep model: claude-sonnet-4-6 --- # Deploy para $1 Antes de fazer deploy: 1. Rode git status e confirme arvore limpa 2. Rode os testes com npm test 3. Verifique se a tag v* existe no commit atual 4. Confirme com o usuario antes de executar npm run deploy:$1 Se qualquer verificacao falhar, pare e me avise.
description
Aparece em /help
argument-hint
Hint no autocomplete
allowed-tools
Sandbox de ferramentas
model
Força um modelo específico
Namespace via subpasta
Organize por contexto. A pasta vira prefixo, separado por dois-pontos. Sem conflito de nome, sem soup de comandos.
.claude/commands/ ├── git/ │ ├── commit.md │ ├── pr.md │ └── rebase.md ├── test/ │ ├── unit.md │ └── e2e.md └── docs/ └── changelog.md
/git:commit # commit guiado /git:pr # abre pull request /git:rebase # rebase interativo /test:unit # roda testes unitarios /test:e2e # roda testes E2E /docs:changelog # gera CHANGELOG
Sacada: namespace é só uma convenção de pasta. Não precisa configurar nada. O Claude Code lê os subdiretórios automaticamente e gera os prefixos.
Os built-in que você não precisa criar
O Claude Code já vem com dezenas de slash commands prontos. Os mais usados no dia a dia, agrupados por função.
Seu primeiro command: /saudacao
Um arquivo. Quatro linhas. Um atalho que poupa explicação toda vez que você precisa daquela tarefa.
---
description: Saudacao formal e bem-humorada
argument-hint: <nome>
---
Mande uma saudacao formal,
porem com um toque de bom humor,
para a pessoa chamada $1.
Termine perguntando como ela esta
e o que ela esta construindo hoje.
O $1 recebe a primeira palavra depois do comando. Tudo abaixo do frontmatter vira o prompt enviado.
esteja com café e seu Git esteja com bom humor.
Como vai? E aí, o que está construindo hoje?
A barra dispara o command. O Claude substitui $1 por "Sandeco" antes de processar. Você nunca teve que explicar o que queria.
Crie o arquivo
.claude/commands/saudacao.md dentro do projeto.
Salve o conteúdo
O frontmatter é opcional. O corpo é o prompt que será enviado.
Digite a barra
/saudacao Sandeco e o agente responde no padrão que você definiu.
Os poderes especiais do command
Dois caracteres extras transformam um Markdown estático em um script vivo: ! roda comandos, @ injeta arquivos.
Bang prefix
Executa shell e injeta saída
--- description: Briefing de inicio de tarefa --- # Estado do projeto Branch atual: !git branch --show-current Mudancas pendentes: !git status --short Ultimos commits: !git log --oneline -5 Com base no que ve, sugira a proxima tarefa.
Cada linha que começa com ! é executada no shell. A saída entra no prompt como se você tivesse colado.
At prefix
Anexa o conteúdo do arquivo
---
description: Revisa o CLAUDE.md
---
# Auditar regras do projeto
Leia o arquivo de regras:
@CLAUDE.md
E o pacote do projeto:
@package.json
Aponte:
1. Regras que contradizem o package.json
2. Regras obsoletas que ninguem segue
3. Sugestoes de novas regras
O @ seguido do caminho injeta o conteúdo do arquivo. Funciona dentro do command e na conversa normal.
Cinco commands que valem o dia
Atalhos que viram músculo da sua rotina. Você os escreve uma vez, usa para sempre.
Command 1 · /briefing
Abertura de turno
Você abre o Claude Code e digita /briefing. O agente já chega sabendo o branch, o que mudou e qual foi o último commit. Zero re-explicação.
--- description: Estado do projeto agora --- # Briefing Branch: !git branch --show-current Status: !git status --short Ultimos 3 commits: !git log --oneline -3 Diff atual (resumo): !git diff --stat Olhe esse contexto e me diga o que parece estar em andamento e qual seria o proximo passo.
O ultimo commit (3h atras) introduziu a validacao de expiracao mas falta o teste para token revogado.
Próximo passo sugerido: escrever o teste para revoked_token_should_401.
Ganho prático: em vez de digitar quatro comandos Git e copiar o output, uma barra entrega contexto e sugestão de próxima ação.
Command 2 · /commit
Mensagem de commit automática
O agente lê o diff staged, segue o padrão Conventional Commits do projeto e gera a mensagem. Você só confirma. Nunca mais "fix stuff" no histórico.
--- description: Gera commit no padrao do projeto allowed-tools: Bash --- # Commit guiado Diff staged: !git diff --cached Ultimos 5 commits do projeto: !git log --oneline -5 Crie uma mensagem seguindo: - Conventional Commits (feat, fix, chore, docs) - Imperativo no titulo - Body explicando o "porque", nao o "o que" - Linguagem do projeto (portugues) Mostre a mensagem completa e pergunte se eu confirmo antes de rodar git commit.
Ganho prático: commits consistentes em todo o time. O padrão vive no arquivo, não na cabeça de cada dev.
Command 3 · /test:focus
Testes só do que mudou
Você está numa pull request grande. Rodar a suíte inteira leva minutos. O command identifica os arquivos modificados, mapeia os testes correspondentes e roda só esses.
--- description: Roda apenas os testes do que mudou allowed-tools: Bash, Read, Grep --- # Testes focados Arquivos modificados: !git diff --name-only HEAD~1 Para cada arquivo da lista: 1. Identifique se e codigo de producao 2. Encontre o teste correspondente (mesmo nome com .test. ou .spec.) 3. Rode npm test passando o caminho exato do teste No final, resuma: - Quantos testes rodaram - Quantos falharam - Cobertura dos arquivos modificados
1 falha em revoke.test.ts:42.
Cobertura dos arquivos
modificados: 87%.
Ganho prático: ciclo de feedback dos seus testes vai de minutos para segundos. Você itera mais rápido sem perder confiança.
Command 4 · /refactor
Refactor com contrato
Refactor sem teste é roleta-russa. O command força o ciclo, escreve o teste primeiro, refatora depois, garante que verde antes e depois é o mesmo verde.
--- description: Refactor seguro com teste como contrato argument-hint: <arquivo-ou-funcao> --- # Refactor de $1 Antes de qualquer mudanca: 1. Leia $1 e identifique o comportamento externo observavel (entradas, saidas) 2. Verifique se existe teste cobrindo esse comportamento 3. Se nao existir, **pare** e escreva o teste primeiro. So depois siga 4. Com teste verde, refatore $1 5. Rode o teste de novo e confirme verde 6. Se quebrar, reverta e diga o porque Nunca refatore sem teste cobrindo o comportamento que voce esta mexendo.
Ganho prático: o command codifica disciplina. Não é "lembrar de testar"; é estrutural, o agente não te deixa pular.
Command 5 · /explain
Explica como se eu tivesse cinco anos
Você herdou código alheio e não entende. /explain <arquivo> abre o arquivo, explica a função em linguagem simples, mapeia dependências e ainda sugere por onde começar a mexer.
--- description: Explica o que um arquivo faz, em portugues simples argument-hint: <caminho> allowed-tools: Read, Grep --- # Explicar $1 Leia $1 e devolva: 1. **Em uma frase**: o que esse arquivo faz 2. **Entradas**: o que ele consome 3. **Saidas**: o que ele produz 4. **Dependencias**: quem ele chama, quem chama ele 5. **Pegadinhas**: efeitos colaterais nao obvios No final, sugira **um ponto seguro** por onde comecar a mexer sem quebrar o resto.
Entradas: tabela users
Saidas: chamadas POST ao CRM
Chamado por: scheduler.ts
Pegadinha: ele apaga usuarios marcados como deleted no CRM, sem confirmacao.
Comece por: a funcao retry(), e a mais isolada.
Ganho prático: on-boarding em código legado deixa de ser semanas de leitura cega. O agente faz o trabalho de mapa por você.
Os cinco atalhos lado a lado
Resumo dos commands práticos que você acabou de ver.
| Command | O que faz | Ganho | |
|---|---|---|---|
| /briefing | Mostra branch, status e log resumido com sugestão de próximo passo | Zero re-explicação | |
| /commit | Gera mensagem de commit no padrão Conventional do projeto | Histórico consistente | |
| /test:focus | Roda só os testes dos arquivos que mudaram no último commit | Feedback em segundos | |
| /refactor | Força teste antes do refactor e valida verde antes/depois | Refactor sem medo | |
| /explain | Resume um arquivo, mapeia deps e indica ponto seguro de entrada | On-boarding rápido |
Nenhum desses commands depende de plugin externo. São cinco arquivos Markdown em .claude/commands/ que você cria em cinco minutos.
Quer dominar cada peça?
O livro Engenharia de Software para Agentes Inteligentes destrincha commands, hooks, skills, MCP, subagents e tudo que faz o agente trabalhar a seu favor.
·
@canalsandeco
Tank disca, Trinity pilota, Smith vigia. Você opera, e a Nabucodonosor faz o resto.
A barra que vira atalho, a skill que vira capacidade, o hook que vira limite. Três peças, um operador no controle.