Pular para o conteúdo principal

M8 — Configuração e Governança Local

Bloco 4 — Configuração do Claude Code · Eixo A (usa Eixo B) · Nível NÍVEL 1 / NÍVEL 2 · LAB lab: allowlist

Abertura

Com o CLAUDE.md dando memória de projeto ao agente (M7), esta lição fecha o Bloco 4 mostrando como controlar, de forma mais fina e estruturada, o que Claude Code tem permissão de fazer no seu ambiente.

Conceito central

Enquanto o CLAUDE.md registra convenções e contexto em linguagem natural, existe um segundo arquivo de configuração que trata especificamente de permissões e comportamento técnico: o settings.json, guardado em .claude/settings.json na raiz do projeto. É um arquivo de dado estruturado — na prática, um dicionário salvo em disco, o mesmo tipo de estrutura de dados que você vai formalizar em M9 — que define, entre outras coisas, quais comandos Claude Code pode executar sem pedir confirmação e quais exigem aprovação explícita. Por ficar dentro de .claude/, junto com outras configurações do projeto, esse arquivo costuma ser compartilhado com o time (versionado no controle de versão); preferências só suas, que não deveriam valer para todo mundo, vão num .claude/settings.local.json separado.

Essa granularidade importa porque nem toda ação tem o mesmo risco. Ler um arquivo é seguro; apagar um arquivo, não necessariamente. A permissão, no contexto de settings.json, é essa decisão configurada previamente — em vez de você aprovar cada ação individualmente durante a sessão (como vimos no modo cauteloso de M2), você declara de antemão o que é permitido.

Uma forma comum de estruturar isso é a allowlist: uma lista explícita de comandos ou ações pré-aprovados, contra a qual cada nova ação é verificada. Se o comando está na lista, ele roda sem interrupção; se não está, Claude Code para e pede confirmação — o inverso de permitir tudo por padrão e bloquear exceções.

Na prática

Um .claude/settings.json simples, com uma allowlist:

{
"permissions": {
"allow": [
"Bash(npm test)",
"Bash(git status)",
"Read"
]
}
}

Com essa configuração, Claude Code pode rodar npm test, checar git status e ler qualquer arquivo sem pedir confirmação a cada vez — mas qualquer outro comando, como apagar um arquivo ou fazer git push, ainda vai parar e perguntar, porque não está na lista.

Lab opcional 🔵

Opcional — para assinantes

Crie um .claude/settings.json com uma allowlist de dois ou três comandos seguros em um projeto seu. Peça ao Claude Code para executar um comando que está na lista e observe que ele não pede confirmação; peça um que não está, e observe que ele para e pergunta.

Checkpoint