HARNESS · COMO FUNCIONA
A política decide antes de qualquer ação.
Cada pedido de agente passa pelas mesmas verificações, na mesma ordem. Se uma falha, o pedido é negado e o motivo vira recibo.
EM UMA IMAGEM
A decisão vem antes da ação.
Cada pedido sai permitido, à espera de uma pessoa ou negado. Não existe uma quarta saída.
O que falha fechada quer dizer para quem compra
Se a política não responde, demora demais ou dá erro, a ação não acontece. O risco de uma falha técnica é um agente parado, nunca um agente solto. Quando o próprio caminho cai, pode não sobrar recibo, mas a falta de recibo nunca vira permissão.
Como isso está montado no IDE Cloud
O hook gerenciado do Claude Code tem um prazo rígido de 120 segundos contado desde o início, limita cada chamada ao tempo restante e nega antes do teto. A configuração gerenciada manda o Claude Code bloquear se o próprio hook falhar ("onFailure": "block") e exige a versão que tem essa opção. Os limites que continuam abertos estão na página de confiança.
01 / ORDEM DAS VERIFICAÇÕES
Falha fechada, em seis passos.
É a regra do plano de controle do Harness, a mesma em Python e em JavaScript.
- 01
Identidade
O pedido tem um dono autenticado? Sem dono, nada roda.
authentication_required - 02
Escopo para o dado
O papel do dono cobre a classe do dado: pública, interna, confidencial ou pessoal?
scope_required - 03
Runtime
Executar exige o runtime habilitado. Planejar não.
runtime_not_enabled - 04
Isolamento do workspace
O alvo fica dentro da raiz do workspace? Travessia de diretório é negada.
workspace_boundary_violation - 05
Provider
A skill usa um provider conhecido e habilitado? Rede de saída direta fica bloqueada.
external_provider_blocked - 06
Aprovação
Ações sensíveis esperam uma pessoa, e quem pede não aprova.
human_approval_required
02 / MOTIVOS REGISTRADOS
Todo resultado tem um código.
O código vai para o recibo. É assim que a decisão pode ser auditada depois.
| Código | O que significa | Resultado |
|---|---|---|
preview_only | Planejar ou ler foi permitido; nada foi alterado. | permitido |
execution_not_implemented | Todas as verificações passaram; nesta fase a execução é simulada. | simulado |
human_approval_required | Ação sensível sem aprovação de uma pessoa. | espera |
authentication_required | Pedido sem dono identificado. | negado |
scope_required | O papel do dono não cobre a classe do dado. | negado |
runtime_not_enabled | Executar sem runtime habilitado. | negado |
workspace_boundary_violation | Alvo fora da raiz do workspace. | negado |
external_provider_blocked | Skill com rede de saída direta. | negado |
provider_disabled | Provider bloqueado na política. | negado |
03 / VERIFICAR UM RECIBO
Cole o JSON e recalcule.
Exporte os recibos na demo e cole aqui. O verificador recalcula cada hash no seu navegador e aponta o primeiro recibo que não confere. Hoje o recibo é um hash SHA-256 encadeado; a assinatura por chave chega com o acesso antecipado.