Linha direta

Commands

O Operador disca o programa

A barra que substitui o parágrafo. O atalho que troca a explicação pela ordem. A ligação telefônica que faz a Trinity voar.

Canal Sandeco
"
"

Tank não pilota, não combate, não decide. Mas é a mão que disca o programa que faz Trinity voar.

Commands · A ligação direta

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.

Dimensão
Command
Skill
Hook
Quem dispara
Usuário, com a barra
Agente, lendo a intenção
Sistema, em cada evento
Onde mora
.claude/commands/
.claude/skills/
.claude/settings.json
Formato
Markdown puro
Markdown + frontmatter
JSON + shell
Propósito
Atalho repetível
Capacidade nova
Vigilância contínua
Metáfora
Tank disca
Trinity pilota
Smith vigia

Onde os commands moram

Cada arquivo Markdown na pasta vira um slash command. O nome do arquivo é o nome do comando.

estrutura do projeto
# 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.

Usuário digita /
Claude lê o .md
Argumentos entram
Agente executa
Mais simples possível

Markdown é o command

Sem código. Sem dependências. O conteúdo do arquivo vira o prompt do agente quando você digita a barra.

1

Nome do arquivo vira o nome do comando

2

O corpo do arquivo é o prompt enviado

3

Frontmatter é opcional, não obrigatório

.claude/commands/resumir.md
# 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.

.claude/commands/revisar.md
---
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"

Argumentos

O command que recebe input

Três placeholders fazem o trabalho. O Claude troca por texto antes de mandar ao agente.

$ARGUMENTS

Tudo que veio depois da barra

$1, $2

Cada palavra posicional, separadas por espaço

argument-hint

Aparece no autocomplete do terminal

O frontmatter que controla tudo

Quatro chaves opcionais decidem nome, ferramentas permitidas, modelo e dica de uso.

.claude/commands/deploy.md
---
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.

estrutura
.claude/commands/
├── git/
│   ├── commit.md
│   ├── pr.md
│   └── rebase.md
├── test/
│   ├── unit.md
│   └── e2e.md
└── docs/
    └── changelog.md
como você invoca
/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.

Já vem prontos

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.

Sessão
/clear Limpa o contexto e começa do zero
/resume Retoma uma sessão anterior
/compact Comprime o contexto manualmente
/exit Encerra a sessão atual
Configuração
/init Cria o CLAUDE.md inicial do projeto
/model Troca o modelo (Opus, Sonnet, Haiku)
/permissions Edita ferramentas permitidas
/config Abre o painel de configurações
Produtividade
/review Revisa um PR ou o diff local
/agents Lista subagentes disponíveis
/hooks Inspeciona os hooks ativos
/mcp Gerencia servidores MCP
Suporte
/help Lista todos os comandos disponíveis
/doctor Diagnóstica problemas do ambiente
/bug Reporta um bug para a Anthropic
/cost Mostra custo da sessão atual
Hands-on · 60 segundos

Seu primeiro command: /saudacao

Um arquivo. Quatro linhas. Um atalho que poupa explicação toda vez que você precisa daquela tarefa.

.claude/commands/saudacao.md
---
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.

Claude Code · sessão ativa
> /saudacao Sandeco
Command expandido
prompt enviado com $1 = "Sandeco"
Saudações, nobre Sandeco. Espero que sua máquina
esteja com café e seu Git esteja com bom humor.
Como vai? E aí, o que está construindo hoje?
aguardando próxima mensagem...

A barra dispara o command. O Claude substitui $1 por "Sandeco" antes de processar. Você nunca teve que explicar o que queria.

1

Crie o arquivo

.claude/commands/saudacao.md dentro do projeto.

2

Salve o conteúdo

O frontmatter é opcional. O corpo é o prompt que será enviado.

3

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.

Mãos à obra

Cinco commands que valem o dia

Atalhos que viram músculo da sua rotina. Você os escreve uma vez, usa para sempre.

/briefing /commit /test:focus /refactor /explain

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.

.claude/commands/briefing.md
---
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.
terminal
> /briefing
⎿ command expandido (4 comandos shell rodados)
Voce esta no branch feature/auth-jwt. Tres arquivos modificados em src/auth/, com foco no middleware de JWT.

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.

.claude/commands/commit.md
---
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.
terminal
> /commit
Proposta de mensagem:
feat(auth): adiciona validacao de
token revogado no middleware JWT
Cobre o cenario em que o token e
valido em formato mas foi revogado
via blacklist. Retorna 401.
Confirma? (s/n)

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.

.claude/commands/test/focus.md
---
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
terminal
> /test:focus
⎿ Analisando 4 arquivos modificados...
⎿ Rodando 3 arquivos de teste...
PASS src/auth/jwt.test.ts
PASS src/auth/middleware.test.ts
FAIL src/auth/revoke.test.ts
11/12 testes passaram.
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.

.claude/commands/refactor.md
---
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.
terminal
> /refactor src/cart/total.ts
Analisei total.ts.
⎿ Sem teste cobrindo a funcao
⎿ Vou parar e escrever o teste primeiro.
PROPOSTA: total.test.ts
- soma vazia retorna 0
- desconto BLACKFRIDAY -20%
- frete gratis acima de 100
Posso criar o teste e seguir? (s/n)

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.

.claude/commands/explain.md
---
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.
terminal
> /explain src/sync/worker.ts
Em uma frase: worker que sincroniza usuarios do banco local com o CRM externo a cada 5 minutos.

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.

Canal Sandeco · @canalsandeco
Command Tank disca
+
Skill Trinity pilota
+
Hook Smith vigia
=
Resultado Matrix dominada

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.

Capítulo 5 · Commands