Skip to content

Claude Code Mastery11 / 12

Padrões avançados — Hooks, servidores MCP, ferramentas custom, system prompts

Quando 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.

Os defaults do Claude Code te levam longe. Mas existe um ponto — geralmente por volta do terceiro mês de uso sério — em que você já passou deles. Você quer um efeito colateral determinístico depois de cada chamada de tool. Você quer que o agent leia seu wiki interno. Você quer entregar uma ferramenta custom que conversa com a API sob medida da sua empresa.

É para isso que serve este artigo. Quatro padrões:

  1. Hooks — cola determinística entre os passos do agent.
  2. Servidores MCP — dados de empresa que o agent pode ler.
  3. Ferramentas custom — seus próprios comandos plugados no agent.
  4. Cirurgia de system prompt — quando os prompts sozinhos não vão te levar lá.

1. Hooks — cola determinística

Um hook é um script que dispara em um evento conhecido: onFileEdit, onShellRun, onSessionStart, onSessionEnd, etc. Não são "IA"; são shell puro.

Por que importam: te permitem adicionar garantias determinísticas em torno de um agent que de outro modo é probabilístico.

Exemplos que rodo em todo projeto:

{
  "hooks": {
    "onSessionStart": "scripts/claude-onstart.sh",
    "onFileEdit": "scripts/claude-onedit.sh",
    "onSessionEnd": "scripts/claude-onend.sh"
  }
}

scripts/claude-onstart.sh:

#!/usr/bin/env bash
# Snapshot do working tree antes do agent começar.
git stash push -u -m "claude-pre-session-$(date +%s)" --keep-index || true

scripts/claude-onedit.sh:

#!/usr/bin/env bash
# Depois de cada edição, prettier só no arquivo alterado.
file="$1"
if [ -f "$file" ]; then
  pnpm prettier --write "$file" --log-level silent
fi

scripts/claude-onend.sh:

#!/usr/bin/env bash
# No fim da sessão, despachamos o transcript.
cp ~/.claude/sessions/last.jsonl /var/log/claude/$(date +%F-%H%M).jsonl

Três hooks. Cada sessão agora é snapshot-able, formatada e auditada. Nenhum é IA; todos são infraestrutura.

2. Servidores MCP — seus dados dentro do agent

Model Context Protocol (MCP) é o padrão para permitir que um agent leia fontes de dados externas em tempo de sessão. Em vez de colar uma página do Confluence, você conecta o servidor MCP e o agent pode navegar sob demanda.

Os padrões que vi pagar:

  • MCP para o bug tracker. O agent lê o ticket, comentários incluídos, antes de começar a implementar.
  • MCP para o schema do DB de staging. O agent pode introspeccionar tabelas em vez de adivinhar.
  • MCP para os runbooks. O agent lê docs/runbooks/<incident-type>.md automaticamente.

A configuração vive em .claude/mcp.json:

{
  "servers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-linear"],
      "env": { "LINEAR_API_KEY": "${LINEAR_API_KEY}" }
    },
    "company-docs": {
      "command": "node",
      "args": ["./mcp/company-docs.js"]
    }
  }
}

Dois avisos:

  • Servidores MCP rodam com seus privilégios. Trate como CLIs; revise o código deles antes de plugar.
  • MCP pode vazar. Se você conecta um servidor que expõe dados de cliente, toda sessão consegue lê-los. Escope apertado.

3. Ferramentas custom — seus próprios verbos

Sub-agents e slash commands deixam você reusar texto. Ferramentas custom deixam você adicionar verbos chamáveis.

Exemplo: uma ferramenta deploy-preview. O agent não deveria rodar shell pra deployar um preview — formas demais de isso dar errado. Em vez disso, exponha uma ferramenta:

{
  "tools": {
    "deploy-preview": {
      "description": "Deploya um preview environment para a branch atual.",
      "schema": {
        "type": "object",
        "properties": {
          "branch": { "type": "string" }
        },
        "required": ["branch"]
      },
      "command": "scripts/deploy-preview.sh"
    }
  }
}

Agora o agent vê um verbo chamado deploy-preview com uma entrada tipada. O script que você escreve decide o que ele faz. O agent não consegue escapar do contrato.

É o mesmo padrão que eu usaria para:

  • run-load-test
  • migrate-staging
  • tail-prod-logs (somente leitura)
  • notify-pager-duty

Cada um é um guard rail que diz "o agent pode fazer isso, exatamente desse jeito, nunca mais fundo."

4. Cirurgia de system prompt

Às vezes o comportamento de um sub-agent está quase certo e um ajuste no system prompt fecha a lacuna. Três padrões:

4a. O bloco "rules"

Sempre coloque os inegociáveis sob um header chamado rules:

# rules
- Nunca adicione @ts-ignore.
- Nunca modifique arquivos em /infra/.
- Sempre rode `pnpm test` antes de declarar sucesso.

O agent trata isso como mais duro do que meras instruções porque parece uma lista de leis.

4b. Schema de saída primeiro

Se você quer saída estruturada (handoffs, JSON, YAML), coloque o schema antes da explicação em prosa. Agents ancoram nos primeiros 200 tokens.

# schema de saída (sempre no topo do system prompt)
status: ok | needs-human | failed
artifacts: [path: string]
notes: string
next: code-reviewer | release-bot | done

# rationale (abaixo do schema, jamais acima)
# Você emite isso pra que o próximo agent do pipeline saiba exatamente onde você está.

4c. Contra-exemplos

Mostre o que NÃO fazer:

# saída ruim
"Pronto. O cache está implementado."

# saída boa
status: ok
artifacts: [{path: "lib/cache.ts"}]
notes: "LRU + TTL implementados. Todos os testes verdes."
next: code-reviewer

Contra-exemplos são, estranhamente, mais eficazes do que exemplos positivos pra obter conformidade. Não tenho uma teoria profunda do porquê; empiricamente, funciona.

Quando você precisa dos quatro juntos

O workflow avançado que acende times de verdade:

hook (onSessionStart)              → snapshot stash
agent lê CLAUDE.md                 → contexto
agent chama servidor MCP           → lê ticket Linear
agent chama tool custom            → run-load-test
hook (onFileEdit)                  → prettier
agent emite handoff estruturado    → code-reviewer
hook (onSessionEnd)                → despacha transcript

Cada camada adiciona determinismo, rastreabilidade ou capacidade. Nenhuma é "o agent". Todas são andaime.

Essa é a lição, quatro artigos dentro dos padrões avançados: o agent é a parte pequena. O andaime é o trabalho de engenharia.


Último artigo da série: O futuro do desenvolvimento agêntico — pra onde isso está indo em 2026, no que eu apostaria e a linha além da qual eu seria cético.

Compartilhar este artigo

#ClaudeCode #MCP #AgenticAI #DevTools #Architecture

LinkedInX / TwitterBlueskyThreadsRedditHacker NewsWhatsAppE-mail

Série — Claude Code Mastery

  1. 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.
  2. 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.
  3. 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.
  4. Parte 04Slash 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.
  5. 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.
  6. 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ã.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. Parte 11Padrões avançados — Hooks, servidores MCP, ferramentas custom, system promptsvocê está aquiQuando 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.
  12. 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.

Continue aprendendo

Curso

O curso Claude Mastery

12 módulos · 5 idiomas · certificado · teste 3 dias grátis.

Ver planos →
LinkedInX / TwitterBlueskyThreads