{
  "tool_id": "art-597-c2pa-aiml-assertion-decoder",
  "kernel_id": "art-597-c2pa-aiml-assertion-decoder",
  "display_name": "C2PA AI/ML Assertion Decoder",
  "tool_version": "1.0.0",
  "mandate_type": "compliance_control",
  "purpose": "Decodes AI/ML provenance assertions off a C2PA manifest's assertion array: ALL entries in every c2pa.actions/c2pa.actions.v2 assertion (a manifest can carry a created -> edited -> published history; this reads the whole chain, not just the first action, generalizing beyond art-361's single-action IDV-scoped read), the full IPTC digitalsourcetype NewsCodes vocabulary (raw code always surfaced, an unrecognized code is never silently dropped -- it lands in unrecognized_source_types), and c2pa.ai_training / c2pa.ai_generative_training training-and-data-mining opt-out assertions (training_mining_opt_out: true/false/not_asserted, read only from an explicit boolean, never inferred). Reports assertions only -- never adjudicates whether an assertion is true, and absence of an AI/ML assertion means nothing (not evidence of human authorship, not proof of AI generation). Reuses art-123's assertion-array input shape as a sibling stage; zero edits to art-123 or art-361. Zero network calls, zero PII.",
  "control_description": "Decodes AI/ML provenance assertions off a C2PA manifest's assertion array: ALL entries in every c2pa.actions/c2pa.actions.v2 assertion (a manifest can carry a created -> edited -> published history; this reads the whole chain, not just the first action, generalizing beyond art-361's single-action IDV-scoped read), the full IPTC digitalsourcetype NewsCodes vocabulary (raw code always surfaced, an unrecognized code is never silently dropped -- it lands in unrecognized_source_types), and c2pa.ai_training / c2pa.ai_generative_training training-and-data-mining opt-out assertions (training_mining_opt_out: true/false/not_asserted, read only from an explicit boolean, never inferred). Reports assertions only -- never adjudicates whether an assertion is true, and absence of an AI/ML assertion means nothing (not evidence of human authorship, not proof of AI generation). Reuses art-123's assertion-array input shape as a sibling stage; zero edits to art-123 or art-361. Zero network calls, zero PII.",
  "declared_inputs": [],
  "declared_outputs": [],
  "kernel_digest": "sha256:d620138d5260a51255c0c89c76d6ae0e99a18d4a396f6b5443ca9aff00e2bd6e",
  "trust_label": "independently verified: zkVM execution proof (risc0/groth16-bn254)",
  "data_vintage": "2026-08-13",
  "last_validated": "2026-08-13",
  "conformance_fixtures_vendored": true,
  "compute_proof_ready": "ready",
  "wave": 99,
  "source_url": "https://ainumbers.co/chaingraph/art-597-c2pa-aiml-assertion-decoder.html",
  "generated_at": "2026-08-15T11:12:17.704Z"
}
