{
  "tool_id": "art-517-audit-trail-completeness",
  "tool_version": "1.0.0",
  "display_name": "Audit-Trail Completeness Attestation",
  "mcp_name": "validate_audit_trail_completeness",
  "mandate_type": "compliance_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-517-audit-trail-completeness.html",
  "description": "Attests that an audit log covering transactions and user activity is complete and gap-free over a caller-declared window, against a caller-declared continuity mechanism: sequence numbers, hash-chain links, or periodic control totals. Enumerates gap position where the mechanism can localize one, reports privileged-action coverage separately from transaction coverage (a trail that logs transactions but not administrator actions fails the 'and user activities' requirement explicitly), checks retention conformance, and reports an undecidable list where the declared mechanism cannot support a position-level verdict (control totals confirm a period is short but cannot localize which event is missing). No log ingestion, no vendor log format parsing -- the caller supplies counts and the declared mechanism only. Zero PII: users are role classes and opaque refs, never a username, email, or IP. Region-portable: window, retention requirement, and mechanism are entirely caller-declared inputs, with no country, currency, scheme, or statute hardcoded. Disambiguation: art-237-validate-agent-audit-trail validates the field structure of one IETF AAT agent-to-agent record; cry-05-agent-action-audit-trail-aggregator builds a Merkle root over this suite's own execution receipts. Neither evaluates a window, detects a gap across a population of external log events, or checks privileged-action coverage -- that is this node.",
  "input_schema_ref": "chaingraph/art-517-audit-trail-completeness.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:10ff11fc5e0034422df62658e0ca6d0c810e4f3a171d94f3a5be120cf5dfec41","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-01"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JZ6qO4w82X1eEYcDY1OB+1LBpHGjwGvA70QHGVcdTtIi1V2sTDlLCX3du5oo04wcrNmiLxrrHJlwXkKnHSWaczAuiS5XreuhPXBRSHNBLi7amksYkK3hboDv+luPPoLGBaOUeATcF1QV/9XXVVEYRwevwtaJbIHZqiyuEmXYAB4nVjPt1FvgTNLL+SoYrrCw8UPe+zKXATMo9Fv6FGLz1SXKlO9fl2clpoX/5lX8keorFx0YxEqQ1NWkktETZlTdGYpO3UL1eRZY+9bZUjTA8fmjdB87qOFzV0AhwL7d4PYVeWZZyMA4iVugjrztkzOvv30jKZazw/6CtMXtkPlkfg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:10ff11fc5e0034422df62658e0ca6d0c810e4f3a171d94f3a5be120cf5dfec41",
      "output": {
        "continuity_mechanism": "sequence_number",
        "continuity_verdict": "CONTINUOUS",
        "event_counts_by_type": {
          "privileged_action": 12,
          "transaction": 850,
          "user_activity": 140
        },
        "gap_count": 0,
        "gaps": [],
        "known_gap_candidates_reconciled": [],
        "privileged_action_coverage": {
          "covered": true,
          "privileged_events_logged": 12,
          "transaction_events_logged": 850
        },
        "regulatory_basis": "RFP CDGPSS202601 §4.5 (audit trails for transactions and user activities, generalised); portable to any regime declaring an audit-trail continuity and retention duty (e.g. EU DORA Art 15 / RTS ICT-related incident record-keeping) via caller-supplied inputs only",
        "retention_conformance": {
          "conforms": true,
          "declared_days": 120,
          "required_days": 90
        },
        "table_version": "AUDIT-TRAIL-COMPLETENESS-2026",
        "undecidable": [],
        "window_end": "2026-07-01T23:59:59Z",
        "window_start": "2026-07-01T00:00:00Z"
      }
    }
  }
}
