Leia os cinco níveis de autonomia
Até aqui você conectou ferramentas e montou um time. Falta a pergunta que decide se dá para dormir tranquilo: o que o agente pode fazer sem você?
A runtime/POLITICA.md responde com cinco níveis, de N0 a N4. A primeira linha do arquivo resume a ideia: quanto maior o impacto da ação, mais o humano participa.
🆕 Novo aqui? Três palavras deste módulo
- Autonomia — quanto o agente age sozinho, sem esperar o seu "pode".
- Nível (N0 a N4) — o grau dessa autonomia. N0 é só conversa. N4 é agir sem nem avisar.
- "Prepara e pede" — o padrão do kit: o agente deixa tudo pronto e pergunta antes de fazer o que tem impacto.
| Nível | O agente… |
|---|---|
| N0 | só conversa |
| N1 | prepara; o humano executa |
| N2 | executa depois de pedir, a cada vez |
| N3 | executa sozinho e avisa |
| N4 | executa sozinho, sem aviso |
O que olhar na tabela: é a cópia exata da seção "Níveis de autonomia" da POLITICA.md. A diferença entre N1 e N2 é quem aperta o botão: no N1 é você, no N2 é o agente, com o seu sim.
Como ler o desenho: cada degrau dá mais liberdade ao agente. O degrau âmbar (N2) é onde o kit coloca tudo o que tem impacto. Os degraus azuis são para ações que, se derem errado, você desfaz sem dor.
só conversa
você executa
pede a cada vez
age e avisa, ou nem avisa
Use o teto por tipo de ação
Os níveis sozinhos não dizem nada. Eles ganham sentido quando você liga cada tipo de ação a um nível máximo. É a segunda tabela da POLITICA.md, a do teto.
As duas últimas colunas mostram como cada teto vira configuração: no Claude Code e no Codex. Você verá as duas nos tópicos 4 e 5.
🆕 Novo aqui? O que é "teto"
Teto é o nível mais alto que uma ação pode ter. Ninguém sobe acima dele, nem o agente, nem um clique apressado. Abaixo dele você pode ser mais rígido: o teto é máximo, não obrigação.
| Ação | Teto | No Claude Code | No Codex |
|---|---|---|---|
| Ler arquivo, página, planilha | N4 | permitido | -s read-only |
| Criar/alterar arquivo do projeto | N3 | acceptEdits | -s workspace-write |
| Comando que altera o sistema | N2 | pede confirmação | sem auto-aprovação |
| Enviar (e-mail, mensagem, post, push) | N2 | pede confirmação | sem auto-aprovação |
| Gastar dinheiro ou crédito | N1 | bloqueado | não executar |
| Apagar dados / produção | N1 + backup | bloqueado (rm -rf) | não executar |
O que olhar na tabela: o teto cai conforme o estrago possível sobe. Ler não quebra nada (N4). Gastar e apagar não têm volta (N1): o agente prepara e quem faz é você.
Clara e a agenda
Ler a planilha para achar horário livre é "ler planilha": N4. O agente responde sem perguntar.
Alterar a agenda mexe com paciente de verdade. A agenda não é um arquivo de rascunho do projeto: é dado da clínica em uso. Clara trata como comando que altera o sistema: N2, o agente pede a cada vez.
Sônia e o dinheiro do cliente
Somar o CSV de vendas é ler: N4. Montar o relatório num arquivo novo é alterar arquivo do projeto: N3.
Pagar guia, emitir boleto ou gastar crédito é "gastar dinheiro": N1. O agente deixa tudo pronto, e quem paga é a Sônia.
Abra claude na pasta do kit e cole:
Leia runtime/POLITICA.md e responda em uma linha qual é o teto de 'Enviar'.
Resultado provado no CHANGELOG 0.2.0 (mesma pergunta, numa sessão em segundo plano):
respondeu "N2" lendo a POLITICA
N2. Troque 'Enviar' por 'Gastar dinheiro ou crédito' e a resposta tem de ser N1.teto N4
teto N3
teto N2
teto N1
Entenda por que "sempre permitir" tem teto
Quando o Claude Code pede licença, ele oferece "sim", "não" e uma opção para não perguntar mais. Na décima pergunta seguida, a tentação é clicar na terceira. Em um dos vídeos de mods, havia até um ajudante que aprovava as permissões sozinho.
A POLITICA.md fecha essa porta com uma frase: uma permissão "sempre permitir" nunca passa do teto da ação. Você pode liberar leitura para sempre. Não pode liberar pagamento para sempre.
✓ "Sempre permitir" faz sentido
- ✓ Ler a agenda da Clara (teto N4)
- ✓ Ler o CSV de vendas da Sônia (teto N4)
- ✓ Criar um relatório na pasta do projeto (teto N3)
- ✓ Rodar o
doctor.mjs, que só olha e informa
✗ "Sempre permitir" passa do teto
- ✗ Enviar mensagem a paciente (teto N2: pede a cada vez)
- ✗ Fazer
pushno repositório (teto N2) - ✗ Pagar a guia do cliente da Sônia (teto N1)
- ✗ Apagar uma pasta com
rm -rf(N1 + backup)
Cansaço
Muitas perguntas seguidas, todas inofensivas. Você para de ler e começa a aprovar no automático.
Liberação ampla
Um clique em "não perguntar mais" vale para todos os casos parecidos, inclusive os perigosos.
O teto segura
Mesmo liberado, o que está acima do teto continua bloqueado ou continua perguntando. É isso que o tópico 4 mostra funcionando.
⚠️ Cuidado com o modo que libera tudo
O Claude Code tem um modo de permissão que não pergunta nada. Ele existe para testes em pasta descartável. Se você usar, o que ainda protege é só o que está escrito como bloqueio no .claude/settings.json. Por isso os bloqueios de N1 ficam no arquivo, e não na sua memória.
💡 Frase para guardar
"Sempre permitir" é atalho para o que é seguro repetir. Para o que tem impacto, a pergunta é o próprio controle: se ela some, o controle some junto.
só até o teto
o risco real
não depende de clique
é o controle
Veja o bloqueio no Claude Code
No Claude Code, a política vira o arquivo .claude/settings.json, que já vem no kit. O Claude Code lê esse arquivo sozinho ao abrir na pasta.
A parte que importa aqui é a lista deny: comandos que o agente não roda, peça quem pedir. São os bloqueios básicos que a POLITICA.md cita para "apagar" e para o push forçado.
🆕 Novo aqui? Três termos do settings.json
- settings.json — o arquivo de configuração do Claude Code para esta pasta. Texto puro, você abre e lê.
- deny — "negar". Lista de comandos que o Claude Code recusa sem perguntar. O
:*no fim quer dizer "com qualquer coisa depois". - hook — um pequeno programa que o Claude Code roda antes ou depois de cada ação. O kit usa hooks para a guarda (módulo 4.3).
{
"permissions": {
"deny": [
"Bash(rm -rf:*)",
"Bash(git push --force:*)",
"Bash(git push -f:*)",
"Bash(git reset --hard:*)"
]
},
"enabledMcpjsonServers": [
"ponte-modelo"
],
"hooks": { ... }
}
hooks liga a guarda (colisão e raio) antes e depois de cada edição e de cada comando. Ele está resumido aqui com ... e é o assunto do módulo 4.3.Como ler o desenho: os dois pedidos passam pela mesma caixa âmbar. O que não está na lista segue pela seta azul. O que está na lista para na seta vermelha, sem pergunta e sem depender de você estar olhando.
Resultado provado no CHANGELOG 0.1.0
O teste usou o Claude Code sem tela, no modo de permissão que libera tudo, pedindo duas coisas: criar um arquivo vazio e apagar com rm -rf.
touch roda; rm -rf negado pelo .claude/settings.json.
💡 Ajuste para o seu caso
O passo 3 do LEIA-ME.md diz: leia a POLITICA.md e ajuste o .claude/settings.json se precisar. Se a Clara tiver um comando que regrava a agenda, ele é um bom candidato a entrar na lista deny ou a ficar no N2.
já vem no kit
4 comandos negados
a guarda, no 4.3
CHANGELOG 0.1.0
Aplique a política no Codex
O Codex não lê o .claude/settings.json. Nele, a política entra pelo sandbox, escolhido com a opção -s a cada chamada. A tabela do teto já diz qual usar.
A ponte runtime/pontes/codex-exec.sh, que você usou no módulo 2.1, só aceita dois valores. Qualquer outro é recusado antes de o Codex ser chamado.
🆕 Novo aqui? O que é sandbox
Sandbox ("caixa de areia") é uma cerca em volta do programa. No read-only o Codex só lê. No workspace-write ele também escreve, mas só dentro da pasta indicada. Existe ainda um modo sem cerca nenhuma, e é esse que a ponte recusa.
| Sandbox na ponte | Linha da POLITICA | Teto |
|---|---|---|
read-only (padrão) | Ler arquivo, página, planilha | N4 |
workspace-write | Criar/alterar arquivo do projeto | N3 |
| qualquer outro | recusado: sandbox recusado pela POLITICA | — |
O que olhar na tabela: enviar, gastar e apagar não têm sandbox na ponte. Para essas linhas a POLITICA diz "sem auto-aprovação" ou "não executar": o Codex prepara, e a ação fica com você.
No terminal, dentro da pasta do kit:
runtime/pontes/codex-exec.sh "x" . danger-full-access
Resultado provado no CHANGELOG 0.1.0:
sandbox recusado pela POLITICA, saída 2
case "$sandbox" in read-only|workspace-write) ;; *) echo "sandbox recusado pela POLITICA: $sandbox" >&2; exit 2 ;; esac
💡 Por que a recusa fica na ponte
Se o Claude pedir ao Codex pelo atalho errado, a ponte barra antes. A regra está num lugar só, em quatro linhas que você consegue ler. Quem quiser mudar precisa mudar o arquivo, e isso aparece no Git.
ler, N4
alterar, N3
recusado, saída 2
a regra num lugar só
Siga as três regras de integração
Além dos níveis e do teto, a POLITICA.md tem uma seção curta chamada Integração. São três regras sobre como as ferramentas se ligam umas às outras.
Elas protegem o que nenhum deny pega: a conta, a senha e a estabilidade do seu sistema.
Só ferramentas oficiais pela assinatura (Claude Code, Codex CLI).
Nada de chave de API emprestada nem cliente paralelo. Cada agente entra com o próprio login.
Nunca passe credencial de uma ferramenta para outra.
Quando o Claude chama o Codex pela ponte, o Codex usa o login dele. O Claude não entrega senha, token nem cookie a ninguém.
Engenharia reversa é laboratório: anote em LIMITES.md e não use em produção.
É a tese do curso em forma de regra. O módulo 4.2 mostra o LIMITES.md e o 4.4 trata do laboratório.
🆕 Novo aqui? Credencial
Credencial é tudo o que prova quem você é para um sistema: senha, token, chave, cookie de sessão. Quem tem a credencial age em seu nome.
Como ler o desenho: pela ponte âmbar passa só texto: o pedido vai, a resposta volta. Os logins ficam cada um na sua caixa. O tracejado vermelho é o caminho que a regra 2 proíbe.
Teste rápido (opcional): a Sônia clicou "sempre permitir" quando o agente pediu para pagar uma guia. O que vale?
ferramenta oficial
fica onde está
engenharia reversa
onde se anota
🎓 Resumo do módulo
Próximo módulo:
4.2 — O agente propõe, você aprova