neeeophytee/ai-watermarks-reality-check · Archived

verify-content-credentials

Verify C2PA Content Credentials in a local asset with the official c2patool, separating manifest presence, cryptographic integrity, and signer trust. Use when a user needs defensible validation instead of byte-marker guesses, including offline and unavailable-verifier cases.

First seen Aug 13, 2026

Installation

$ npx skills add neeeophytee/ai-watermarks-reality-check --skill verify-content-credentials

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from neeeophytee/ai-watermarks-reality-check.

npx skills add neeeophytee/ai-watermarks-reality-check

Browse all from neeeophytee/ai-watermarks-reality-check

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 12
License LICENSE
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,808 B
  • docs SUMMARY.md 309 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 17 installs

SKILL.md

Verify Content Credentials

Use the official verifier and preserve uncertainty. A valid signature is not automatically a trusted signer.

All paths below are relative to this skill's directory. If you are running from elsewhere, use an absolute path to scripts/verify_c2pa.py.

Workflow

  1. Preserve the source asset.
  2. Confirm c2patool -V works, or pass its explicit path with --c2patool.

The wrapper requires c2patool 0.20.0 or newer and reports verifier_supported: false with an actionable reason on older builds rather than degrading silently.

  1. Run base integrity verification:

``bash python3 scripts/verify_c2pa.py /absolute/path/to/asset ``

  1. When trust evaluation is required, pass a reviewed trust-anchor file or URL:

``bash python3 scripts/verify_c2pa.py asset.jpg --trust-anchors /absolute/path/to/anchors.pem ``

  1. Interpret the three result fields independently. Keep UNKNOWN or NOT_CHECKED intact.
  2. The wrapper disables remote-manifest fetching by default. Add --allow-network only when remote retrieval is authorized; URL-based trust anchors also require it.
  3. Include the verifier version and file hash in any report. Every field exists

on every code path, so these are always available to quote.

  1. Report manifest.claim_generator and manifest.actions when explaining a

result. Users usually want to know what the manifest claims — whether the asset was declared c2pa.created or c2pa.edited — not only that a signature verified.

Captured-report review mode

Review the structure of captured c2patool JSON without executing a binary:

python3 scripts/verify_c2pa.py --report-json report.json --asset-sha256 SHA256

This mode always returns integrity=NOTVERIFIED and a nonzero exit status. Its nested reportedresult is informational because captured JSON cannot prove that the verifier ran or that the report belongs to the supplied hash.

Boundaries

  • Do not download remote manifests unless the user authorized network access.
  • Do not map “verifier missing” to “manifest absent.”
  • Do not map signingCredential.untrusted to invalid content; report integrity and trust separately.
  • Only a successful live verifier run with a recognized summary schema and positive signature evidence can return VALID.
  • Never expose certificate material unless requested.

Read references/c2pa-verification.md before changing classification rules.