一键导入
provenance-signing
Build a Spotlight provenance manifest and optionally hand it to Noosphere C2PA signing before the final review/report artifact is delivered.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build a Spotlight provenance manifest and optionally hand it to Noosphere C2PA signing before the final review/report artifact is delivered.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | provenance-signing |
| description | Build a Spotlight provenance manifest and optionally hand it to Noosphere C2PA signing before the final review/report artifact is delivered. |
| version | 1.0 |
| invocable_by | ["orchestrator","user"] |
| requires | [] |
This skill creates a portable provenance package for a completed Spotlight case. It does not replace Spotlight verification. It makes the case artifacts tamper-evident and gives Noosphere C2PA a clear signing contract.
Use it after Gate 1 readiness criteria pass and before the final HTML review/report artifact is delivered.
Spotlight signs the investigation package, not isolated web fetches:
summary.mddata/findings.jsondata/fact-check.jsondata/source-expressions.json, for activated casesdata/evidence-bundle.jsondata/investigation-log.jsonreview.html, when presentLegacy cases keep the generated manifest at:
{CASE_DIR}/data/provenance-manifest.json
For an activated findings contract (schema_version: "1.1"), that path is a
derived current pointer. The immutable manifest bytes are stored at:
{CASE_DIR}/data/provenance-manifests/PM-<revision-hash>.json
Each revision records its input-set hash and parent revision/input-set hashes. Claim entries include the exact source-expression IDs, expression/finding/link fingerprints, relation, anchor hash, and original artifact hash used by the fact-check at that revision. This proves integrity and traceability, not that the passage semantically entails the finding.
Noosphere C2PA does not need a third-party API key for this contract. It does need a signing credential configured wherever Noosphere runs the signer.
Model this distinction explicitly:
requires_api_key: falserequires_signing_credential: truecredential_id: optional identifier passed to the signerNever store private keys, certificates, bearer tokens, or signing secrets in the case directory.
For a local unsigned package:
execute-shell("python3 scripts/build-provenance-manifest.py {CASE_DIR}")
For a legacy case this writes the existing unsigned 1.0 manifest. For an activated case it creates one immutable unsigned revision and advances the current pointer. Repeating the command with unchanged inputs reuses the same revision.
Before delivering or signing an existing manifest, check that findings, fact-check, source expressions, review, and report inputs have not changed:
execute-shell("python3 scripts/build-provenance-manifest.py {CASE_DIR} --check-current")
The command exits non-zero and marks an activated pointer stale on any input
or revision-byte mismatch. Rebuild to create a child revision; never edit a
revision file in place.
If a Noosphere C2PA signer endpoint is available:
execute-shell("python3 scripts/build-provenance-manifest.py {CASE_DIR} --sign-endpoint http://localhost:5002/api/spotlight/provenance/sign --credential-id <credential-id> --artifact review.html")
The signing request body is:
{
"artifact_path": "review.html",
"provenance_manifest": {},
"credential_id": "optional signer credential id"
}
Expected successful response is any JSON receipt Noosphere chooses to return. For activated cases receipts are immutable and content-addressed under:
{CASE_DIR}/data/provenance-signing-receipts/
The current pointer records the applicable receipt. A repeated signing command
for an already signed revision does not call the signer again. Legacy cases
retain data/provenance-signing-receipt.json for compatibility.
In summaries and HTML reports, describe the result carefully:
Truth still depends on Spotlight evidence, independent fact-checking, and editorial review.
If signing fails, keep the unsigned immutable revision and continue the review
flow. Activated cases append a deduplicated failure record under
data/provenance-signing-attempts/; retrying never overwrites a revision,
receipt, or earlier attempt. Report:
If a signing retry succeeds, the pointer advances to the immutable receipt and prior failed-attempt records remain historical evidence. If case inputs change after signing, the signed revision and receipt remain untouched; the current pointer becomes stale until a new child revision is built.
Use when an investigation step may need an external integration such as browser acquisition, Maigret account discovery, Junkipedia narrative tracking, OSINT Navigator tool discovery, Noosphere C2PA signing, or Unpaywall access lookup.
Turn investigation findings into explicit, user-approved monitoring recommendations. Spotlight recommends; Mycroft owns any Scoutpost action.
OSINT investigation orchestrator — guides verified investigations from lead to findings to knowledge ingestion. Triggers on "investigate", "investigation", "OSINT", "look into", "dig into".
OSINT investigation toolkit — local SQL index of 12,500 tools (`osint-tools find`, offline), methodology guides, and optional OSINT Navigator (subscription tier). Works offline with any LLM.
Portable claim-to-evidence grounding for knowledge work, fact-checking, and Spotlight investigations. Use when extracting claims or findings, assigning confidence, diagnosing weak support, or deciding whether material is a lead, partially grounded claim, verified finding, disputed claim, or false claim.
Portable safe command construction for any agent skill or recipe. Use before a shell call containing user, model, scraped, configuration, filesystem, or generated values.