Incident Response
When an AI-related incident occurs, narratives collapse quickly.
ChainOfFact is designed for what happens next.
During Normal Operation
- Events are recorded append-only
- No interpretation or scoring
- No retroactive edits
When an Incident Is Flagged
- The moment is recorded immutably
- Subsequent events are cryptographically linked
- No data is backfilled
Example incident start marker:
{
"type": "incident_start",
"incident_id": "INC-2026-001",
"timestamp": "2026-01-29T18:42:00Z",
"description": "Bias investigation initiated",
"triggered_by": "compliance_team",
"severity": "high"
}
What to Record
Record artifacts with cryptographic hashes to prove they existed in their exact form at collection time.
System Logs
Hash the complete log file, not excerpts. Include file path and collection timestamp.
artifact_type: "system_log", artifact_hash: "sha256:..."
Model Inputs/Outputs
Hash both the input prompt and output response separately. Link to the model version.
inputs_hash: "sha256:...", outputs_hash: "sha256:..."
Configuration Snapshots
Hash the active configuration at incident time. Include version identifiers.
artifact_type: "config_snapshot", config_version: "v2.1.0"
Access Logs
Record who accessed what data and when. Include authentication context.
artifact_type: "access_log", accessor: "user@domain.com"
Closing the Investigation
When evidence collection is complete, mark the end of the incident scope.
{
"type": "incident_end",
"incident_id": "INC-2026-001",
"timestamp": "2026-01-30T14:00:00Z",
"artifact_count": 47,
"status": "collection_complete",
"closed_by": "lead_investigator@company.com"
}
Bundle Generation
Generate a sealed evidence bundle for sharing with regulators, counsel, or auditors.
POST /api/bundles/evidence
{
"incident_id": "INC-2026-001",
"include_chain_proof": true,
"format": "zip"
}
- Generate a sealed evidence bundle
- Share it with regulators, counsel, or auditors
- Verification requires no trust in ChainOfFact
ChainOfFact does not explain incidents. It preserves evidence.