signed-audit-trails-recipe
Ajuda seu agente a criar registros de auditoria seguros. É útil para rastrear ações de forma confiável e detectar alterações não autorizadas.
O que ela faz
Esta ferramenta cria um registro seguro e verificável de todas as ações que um agente de IA realiza. Cada ação é avaliada por regras de segurança e, em seguida, assinada digitalmente, permitindo que qualquer pessoa verifique se não foi alterada.
Quando usar
- ✓Em áreas regulamentadas (finanças, saúde) para provar o comportamento do agente.
- ✓Em processos de desenvolvimento automatizado (CI/CD) para garantir que as regras foram seguidas.
- ✓Quando você precisa que outra pessoa verifique as ações do seu agente sem confiar em você diretamente.
Exemplo do que pedir para a IA
“Configure o registro de auditoria assinado para minhas chamadas de ferramenta.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta usa um plugin que primeiro verifica cada comando com uma política de segurança (Cedar) e depois gera uma assinatura digital (Ed25519) para o resultado. Essa assinatura permite a verificação posterior sem precisar de conexão com a internet ou confiança no operador.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill signed-audit-trails-recipeOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/signed-audit-trails/skills/signed-audit-trails-recipe/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Trilhas de Auditoria Assinadas para Chamadas de Ferramentas do Claude Code
Um guia prático no estilo "cookbook" para recibos criptograficamente assinados em cada
chamada de ferramenta do Claude Code. Esta é a habilidade de ensino. Para a implementação em tempo de execução, instale o plugin protect-mcp.
O que isso oferece a você
Cada chamada de ferramenta (Bash, Edit, Write, WebFetch) é:
- Avaliada contra uma política Cedar antes da execução. Se a política negar a chamada, a ferramenta não será executada.
- Assinada como um recibo Ed25519 após a execução. Os recibos são canônicos JCS e verificáveis offline por qualquer pessoa com a chave pública.
Um auditor, regulador ou contraparte pode verificar cada recibo posteriormente (Passo 5). Nenhuma chamada de rede, nenhuma consulta a fornecedor, nenhuma confiança no operador.
Quando usar o padrão
- Ambientes regulamentados (finanças, saúde, infraestrutura crítica) onde você precisa de evidências à prova de adulteração do comportamento do agente
- Pipelines de CI/CD onde você deseja provar que um portão de política foi mantido para cada etapa automatizada de compilação
- Colaboração multipartidária onde uma contraparte deseja verificar o comportamento do seu agente sem confiar no seu operador
- Contextos de conformidade (Artigo 12 do EU AI Act, proveniência SLSA para software construído por agentes) onde o registro padrão não é suficiente
Passo 1: Instale a configuração do hook
Instale o plugin protect-mcp com /plugin install protect-mcp. Seus hooks
executam evaluate.sh antes de cada chamada de ferramenta e sign.sh após ela. Ambos os scripts
leem o evento do hook do stdin, pois o Claude Code não define variáveis TOOL_NAME ou
TOOL_INPUT. Veja
references/hook-wiring.md para a configuração do hook
e o que cada script passa para o protect-mcp.
O protect-mcp 0.7.4 não cria a chave de assinatura e, sem uma chave, os
recibos ficam sem assinatura. Crie ./protect-mcp.key uma vez. O comando nunca
substitui uma chave existente:
if [ ! -e ./protect-mcp.key ]; then
d=$(mktemp -d) && npx protect-mcp@0.7.4 init --dir "$d" && mv "$d/keys/gateway.json" ./protect-mcp.key
fi
Forneça aos auditores o valor publicKey desse arquivo. Não comite o arquivo,
pois ele também contém a chave privada.
Adicione a chave privada e o diretório de recibos a .gitignore:
echo "/protect-mcp.key" >> .gitignore
echo "/receipts/" >> .gitignore
Passo 2: Escreva uma política Cedar
Crie ./protect.cedar a partir do exemplo em
references/cedar-policy.md. Ele permite ferramentas somente leitura e uma lista curta de comandos Bash, nega encadeamento de shell e comandos destrutivos, e limita gravações no projeto com segmentos de .. negados.
Passo 3: Use o Claude Code normalmente
Inicie o Claude Code. Cada chamada de ferramenta passa por ambos os hooks:
You: Please read the README and summarize it.
Claude: I will read README.md.
[PreToolUse: Read ./README.md -> allow]
[Tool: Read executes]
[PostToolUse: receipt rcpt-a8f3c9d2 signed to ./receipts/]
... summary of README ...
Uma sessão de 20 chamadas de ferramenta anexa 20 recibos a ./receipts/receipts.jsonl.
Passo 4: Inspecione um recibo
O protect-mcp 0.7.4 anexa cada recibo como uma linha de
./receipts/receipts.jsonl. Imprima o mais novo:
tail -n 1 ./receipts/receipts.jsonl | python3 -m json.tool
O recibo é um envelope v2 assinado que nomeia a ferramenta e não contém chave pública. Veja
references/receipt-format.md
para um exemplo e os campos assinados.
Passo 5: Verifique os recibos
Passe o valor publicKey de ./protect-mcp.key para o verificador:
PUB=$(node -p 'JSON.parse(require("fs").readFileSync("./protect-mcp.key")).publicKey')
npx @veritasacta/verify@0.9.2 --replay-chain ./receipts/receipts.jsonl --key "$PUB"
Códigos de saída:
| Código | Significado |
|---|---|
0 |
Todos os recibos verificados |
1 |
Um recibo falhou na verificação (adulterado, chave errada ou linha malformada) |
2 |
O arquivo de recibos não pôde ser lido |
Passo 6: Demonstre a detecção de adulteração
Altere o decision do recibo mais novo de allow para deny:
python3 -c "
import json
path = './receipts/receipts.jsonl'
lines = open(path).read().splitlines()
r = json.loads(lines[-1])
r['payload']['decision'] = 'deny'
lines[-1] = json.dumps(r)
open(path, 'w').write('\n'.join(lines) + '\n')
"
npx @veritasacta/verify@0.9.2 --replay-chain ./receipts/receipts.jsonl --key "$PUB"
O verificador sai com o código 1 e relata qual linha falhou. A
assinatura Ed25519 não corresponde mais aos bytes canônicos JCS do
…
Perguntas frequentes
O que é uma trilha de auditoria assinada?
É um registro de ações que foi criptograficamente assinado, garantindo que ele não foi alterado após a criação e que pode ser verificado por qualquer pessoa com a chave pública.
Por que usar Cedar?
Cedar é uma linguagem de política que permite definir regras de segurança para controlar quais ações o agente pode realizar, garantindo que ele opere dentro dos limites esperados.
Como alguém verifica as ações?
Qualquer pessoa pode usar a chave pública fornecida para verificar as assinaturas digitais nos registros. Se a verificação for bem-sucedida, significa que o registro é autêntico e não foi modificado.
Detalhes
Descrição original do autor
Step-by-step cookbook for setting up cryptographically signed audit trails on Claude Code tool calls. Use when explaining, evaluating, or demonstrating the pattern before committing to the protect-mcp runtime hooks. Covers Cedar policy, Ed25519 receipts, offline verification, tamper detection, CI/CD integration, and SLSA composition.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4954
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC