Objetivo: ao final, o consultor distingue uma instrução que o Claude geralmente segue de um código que sempre roda, e identifica em quais situações de projeto essa diferença deixa de ser teórica.
O Nível 2 estabeleceu a distinção e parou ali. Este módulo retoma exatamente do mesmo ponto:
| CLAUDE.md (guia) | Hook (configuração) | |
|---|---|---|
| Onde vive | No contexto da sessão | Em settings.json, fora do contexto |
| Quem executa | O modelo decide se segue | O Claude Code roda, sempre |
| Garantia | Nenhuma — depende de atenção | Determinística no ponto onde está registrado |
| Falha típica | Arquivo cresce, regra antiga para de ser seguida | Script mal escrito, exit code errado (aula 3.2.4) |
| Custo de contexto | Consome contexto a cada sessão | Zero, até o hook devolver algo |
A leitura prática: convenção, preferência e contexto de projeto continuam no CLAUDE.md. Regra que nunca pode ser violada vira hook. E as duas coisas convivem — o hook barra, e o CLAUDE.md explica por que a regra existe.
| Local | Escopo | Compartilhável |
|---|---|---|
~/.claude/settings.json |
Todos os seus projetos | Não — é local à sua máquina |
.claude/settings.json |
Um projeto | Sim — vai para o repositório |
.claude/settings.local.json |
Um projeto | Não — fica fora do versionamento |
| Managed policy settings | Organização inteira | Sim — controlado pela administração |
Plugin hooks/hooks.json |
Enquanto o plugin está ativo | Sim — módulo 3.3 |
| Frontmatter de skill ou subagente | Enquanto o componente está ativo | Sim |
Os níveis somam, não se substituem: um hook de projeto não apaga um hook de managed policy. E disableAllHooks não desliga hooks que vieram de managed settings.
| Situação | Você está olhando? | O que garante a regra |
|---|---|---|
| Sessão interativa, você acompanhando | Sim | Você mesmo — você vê e interrompe |
| Sessão headless em pipeline (módulo 3.5) | Não | Só o hook |
| Routine agendada rodando de madrugada | Não | Só o hook |
| Subagente trabalhando em paralelo | Não de perto | Só o hook — que também dispara lá dentro |
| Consultor novo no projeto, primeira semana | Não | Só o hook |
/hooks
Abre o navegador de hooks: lista de eventos, contagem de hooks por evento e, ao selecionar um, o detalhe — evento, matcher, tipo, arquivo de origem e comando. É somente leitura: para adicionar, alterar ou remover, edite o JSON de settings (ou peça ao Claude para editar).
Regra Wayon Hook que implementa política — ambiente, dado pessoal, nomenclatura de transporte — vive no
.claude/settings.jsondo projeto ou em managed policy, nunca só no settings pessoal de quem escreveu. Uma garantia que existe só na máquina de uma pessoa não é uma garantia da consultoria. Hook vindo de fora (repositório público, plugin de terceiro) passa pela mesma revisão de um servidor MCP: alguém lê o script antes de ele entrar em máquina com dado de cliente.
📖 Hooks — referência oficial · Automatizar ações com hooks (guia)
Correto. É a distinção que abre o módulo: guia influencia, hook garante.
Melhora a chance marginalmente, mas o mecanismo continua sendo atenção disputada — nenhuma redação transforma guia em garantia.
Não é bug, é a natureza documentada do arquivo — ele entra no contexto, e o que está no contexto é ponderado, não executado.
Hook não fica no CLAUDE.md nem no contexto — é configuração em settings.json.
Isso descreve exatamente o que hook não é. Se dependesse de o modelo ler e se comprometer, seria guia outra vez.
Correto. Quem dispara é o Claude Code, não o modelo — e é por isso que a execução é determinística.
É a situação de menor consequência: nessa configuração você mesmo funciona como o portão.
Correto. Sem supervisão humana, o hook é o único portão que sobra.
É o momento de decidir o que vira hook, mas a consequência só se materializa na execução — especialmente na não supervisionada.
~/.claude/settings.json. Um colega clona o projeto do Meridiano e começa a trabalhar. O que acontece? ---O escopo é definido pelo arquivo onde o hook está, não pela intenção de quem escreveu — ~/.claude/settings.json é local à sua máquina.
Não existe replicação automática de settings pessoais; a distribuição é explícita, por projeto, managed policy ou plugin.
.claude/settings.json do projeto, em managed policy ou num pluginCorreto. Garantia que só existe numa máquina não é garantia da consultoria.