Claude Code Mastery4 / 12
Slash commands — construindo um projeto de A a Z
/init, /agents, /compact e seus comandos custom. O kit que te leva da pasta vazia ao app rodando sem sair do prompt do Claude.
Slash commands são o superpoder oculto do Claude Code.
A maioria usa /init e depois esquece que o sistema existe. Isso é deixar 80% da produtividade na mesa.
Bem usados, slash commands transformam o Claude Code numa CLI opinada: uma tecla = um workflow repetível. Vamos passar pelos embutidos e depois construir um projeto da pasta vazia ao app rodando usando só slash commands.
Os quatro embutidos que valem saber
/init
Rode uma vez por projeto. Cria .claude/ com settings.json, CLAUDE.md e agents/. Sem isso, toda sessão começa fria.
/agents
Abre o seletor de sub-agentes. Sub-agentes são personas Claude especializadas (cobrimos o set inteiro no artigo 5). Use /agents para chamar code-reviewer, test-writer, migration-runner etc. sem reescrever os system prompts.
/compact
O mais subestimado. Conforme a sessão cresce, a janela de contexto incha com tool calls antigas e arquivos descartados. /compact reescreve o resumo mantendo as decisões intactas.
/clear
Opção nuclear. Apaga todo o histórico. Útil quando você troca de "implementando feature X" para "depurando uma falha de CI sem relação" — contexto fresco, atenção fresca.
Comandos custom — o jogo real
Comandos custom moram em .claude/commands/<nome>.md. São apenas arquivos markdown colados na conversa quando você digita /<nome>.
Exemplo: /feature
.claude/commands/feature.md:
Você vai implementar uma nova feature.
Use esse template:
# Objetivo
{{descreva o resultado com um número quando der}}
# Restrições
- Não quebrar os testes existentes.
- Não adicionar dependência nova sem perguntar.
- Manter mudanças escopadas aos arquivos listados.
# Definition of Done
- pnpm test passa.
- pnpm lint limpo.
- Adicionar descrição de PR (1 parágrafo).
# Arquivos
{{liste os arquivos relevantes}}
Aguarde o usuário preencher os campos antes de começar.
No terminal:
> /feature
Claude Code expande. Você preenche os campos. Agora a estrutura do prompt é forçada — toda feature tem o mesmo formato.
Exemplo: /test-and-fix
.claude/commands/test-and-fix.md:
1. Rode `pnpm test`.
2. Em caso de falhas: leia cada teste que falhou, infira o bug, conserte o código (não o teste), rode de novo.
3. Pare somente quando `pnpm test` sair com 0.
4. Reporte um resumo de 3 linhas das mudanças.
Agora /test-and-fix é um comando "conserta o build" de uma tecla. Ótimo para triagem de CI flaky.
Exemplo: /release-notes
.claude/commands/release-notes.md:
1. `git log --oneline ${LAST_TAG}..HEAD`
2. Agrupe os commits em: features / fixes / chores.
3. Escreva uma entrada de changelog em markdown, sem encheção, máximo 25 linhas.
4. Salve em CHANGELOG.md e faça stage.
A a Z — construindo um projeto só com slash commands
Vamos provar. Vamos fazer scaffolding de um pequeno serviço Next.js + tRPC a partir de uma pasta vazia, com uma regra: nada de edição manual, só slash commands e prompts.
mkdir todo-service && cd todo-service
claude
Dentro do Claude:
> /init
→ Cria .claude/ e pede um CLAUDE.md. Preencha:
# Contexto do projeto
- Serviço pequeno Next.js 14 + tRPC + drizzle para todos.
- TS strict, pnpm, vitest.
# Convenções
- Teste: pnpm test
- Lint: pnpm lint
- Format: pnpm fmt
# Definition of done
- Testes passam, lint limpo, sem console.log em src/.
Em seguida:
> /feature
> Objetivo: Bootstrapar app Next.js 14 com tRPC + drizzle (sqlite) e tabela todos.
> Restrições:
> - Só pnpm.
> - Use o starter oficial create-next-app + tRPC, não um fork.
> - TS strict.
> Definition of Done:
> - pnpm dev roda.
> - GET /api/trpc/todos.list retorna [].
> Arquivos: (repo vazio)
Claude faz o scaffold, instala, sobe o dev server, bate no endpoint pra verificar e devolve um diff.
> /feature
> Objetivo: Adicionar POST todos.create com validação zod, persistir via drizzle.
> Restrições:
> - Reaproveitar o client drizzle em lib/db.ts.
> - 1 vitest cobrindo create + list.
> Definition of Done:
> - vitest verde.
> - typecheck limpo.
> Arquivos: src/server/api/routers/todos.ts, lib/db.ts
Claude escreve a procedure, o schema, o teste, roda e devolve um diff.
> /test-and-fix
Se quebrou, ele conserta.
> /release-notes
Changelog escrito.
> git checkout -b feat/todos && git add . && git commit -m "feat: todos.create + list"
Você não abriu um arquivo sequer. O diff é revisável; o trabalho está pronto.
Anti-padrões
/featuresem preencher os campos. Anula o propósito; o agente chuta.- Comandos custom que só repetem um parágrafo. Comando custom deve codificar um workflow (passos, checks), não só tom de voz.
- Guardar slash commands fora do repo. Comite
.claude/commands/pro time compartilhar o vocabulário.
O ângulo do time
Quando .claude/commands/ está no git, na prática você está mandando memória muscular compartilhada. Pessoas novas herdam de graça seu /feature, /review, /release-notes. Em 3-4 semanas, todo time com que trabalhei tem 8-12 comandos custom e o onboarding no Claude Code cai de "uma semana" para "uma manhã".
Próximo artigo: Sub-agentes — os 11 especialistas dentro do Claude Code. Slash commands reaproveitam prompts. Sub-agentes reaproveitam personas inteiras. Esse é o destrancamento.
Série — Claude Code Mastery
- Parte 01Claude Code vs ChatGPT vs Copilot vs agentesA maioria dos desenvolvedores está usando a ferramenta de IA errada para a tarefa errada. Aqui está o porquê — e o que fazer no lugar.
- Parte 02Instalação + o workflow antigravidadeInstalar Claude Code é trabalho de 30 segundos. Configurar o workflow que faz o agente parecer estar carregando o trabalho pesado — essa é a parte que ninguém escreve.
- Parte 03Escrever prompts que funcionam"Deixa melhor" não é prompt. "Refatore para performance" não é prompt. Aqui está a estrutura de quatro partes que faz o Claude Code de fato terminar o que você pediu.
- Parte 04Slash commands — construindo um projeto de A a Z — você está aqui/init, /agents, /compact e seus comandos custom. O kit que te leva da pasta vazia ao app rodando sem sair do prompt do Claude.
- Parte 05Sub-agentes — os 11 especialistas dentro do Claude CodeSlash commands reaproveitam prompts. Sub-agentes reaproveitam personas inteiras — code-reviewer, test-writer, migration-runner. Aqui está o time que você deveria ter no dia um.
- Parte 06Segurança em codebase de produçãoPermissões, guard-rails e o que não automatizar. O artigo nada sexy que decide se Claude Code vira infraestrutura ou vira o motivo de você ter sido chamado às 2 da manhã.
- Parte 07Pipelines multi-agenteEncadear sub-agentes, rodá-los em paralelo e os padrões para 'revisar-enquanto-codifica' sem perder a sanidade. Onde o Claude Code começa a parecer uma pequena org de engenharia.
- Parte 08Construindo features completasDo ticket no Linear ao PR mergeado com Claude Code. Um passo a passo real e honesto — como ficou o prompt, o que o agente acertou, o que peguei na revisão.
- Parte 09Testes e debugDeixar Claude Code dono de todo o loop de testes. Incluindo as partes que deixam engenheiros nervosos: regressões, flakies, testes de integração e o sussurrador de stack-trace.
- Parte 10Workflows de timeComo times de engenharia estão de fato integrando o Claude Code hoje. A pasta .claude/ compartilhada, os rituais de review e os antipadrões que vejo se repetindo no campo.
- Parte 11Padrões avançados — Hooks, servidores MCP, ferramentas custom, system promptsQuando você já cresceu além dos defaults: hooks para efeitos colaterais determinísticos, servidores MCP para dados da organização, ferramentas custom e cirurgia de system prompt.
- Parte 12O futuro do desenvolvimento agênticoPra onde isso vai em 2026 e além. No que eu apostaria, no que não, e a linha além da qual eu fico cético com o hype.