# cada side-effect del agente genera un AuditEvent con correlation_id
# hash(n) = SHA-256(hash(n-1) || event_payload_canonical_json)
| seq | kind | correlation_id | prev_hash | hash |
| 0001 | agent.tool_call | corr_8f3a2c91 | 0000000000000000… | a4d8c7e2f1b9e6d3… |
| 0002 | approval.granted | corr_8f3a2c91 | a4d8c7e2f1b9e6d3… | b7e1f4a9c2d8e5b6… |
| 0003 | tool.exec.success | corr_8f3a2c91 | b7e1f4a9c2d8e5b6… | c9f2a8d1e4b7c3a5… |
| 0004 | memory.promoted | corr_8f3a2c91 | c9f2a8d1e4b7c3a5… | d1e5b8a3f6c9e2d7… |
# verificación: re-hashear seq 1..N · comparar con hash almacenado.
# cualquier mutación retroactiva rompe la cadena (tamper-evidence).