$npx -y skills add indranilbanerjee/socialforge --skill c2pa-signEmbed C2PA (Content Authenticity Initiative) provenance manifests into SocialForge AI-generated assets — images, video, audio. Use when: preparing AI-generated social posts for EU markets to comply with EU AI Act Article 50 (applicable 2 Aug 2026); making AI generation disclosure
| 1 | # /socialforge:c2pa-sign — Embed Content Authenticity Provenance |
| 2 | |
| 3 | ## Purpose |
| 4 | |
| 5 | ## Context efficiency |
| 6 | |
| 7 | Asset-heavy skill. **Grep before Read** the asset catalog (`${CLAUDE_PLUGIN_DATA}/<brand>/assets/index.json`) — never list the asset directory. Reference generated images / videos by path, not by loading metadata. Brand profile loads once per session. |
| 8 | |
| 9 | Wraps `scripts/c2pa_sign.py` to add a **C2PA manifest** to any SocialForge-generated marketing asset. The manifest carries: |
| 10 | |
| 11 | - Machine-readable provenance trail (brand, generator name, timestamp, prompt, target platform) |
| 12 | - IPTC digital-source-type vocabulary tag (`TRAINED_ALGORITHMIC_MEDIA` / `COMPOSITE_WITH_TRAINED_ALGORITHMIC_MEDIA` / `HUMAN_EDITS`) |
| 13 | - schema.org CreativeWork assertion (author = brand organization, dateCreated, publishingPrinciples = target platform) |
| 14 | |
| 15 | **Why this matters:** EU AI Act Article 50 applies from **2 August 2026**. Generative-AI marketing content distributed in EU markets must be marked in a machine-readable format using open, interoperable standards — C2PA is the emerging backbone. Penalty: up to **€15 million or 3% global annual turnover**. Additional disclosure obligations apply under NY synthetic-performer law (effective June 2026) and FTC May 2026 endorsement guidance. |
| 16 | |
| 17 | The resulting asset is verifiable at [contentcredentials.org/verify](https://contentcredentials.org/verify) or in any C2PA-aware viewer (Adobe Photoshop, Lightroom, Truepic, Microsoft Copilot, etc.). |
| 18 | |
| 19 | ### C2PA spec versions relevant to SocialForge (June 2026) |
| 20 | |
| 21 | - **Content Credentials 2.3** (released 9 February 2026 — [launch post](https://c2pa.org/the-c2pa-launches-content-credentials-2-3-and-celebrates-5-years-of-impact-across-the-digital-ecosystem/)) added support for **live video** (broadcast/streaming), **plain text documents**, **OGG Vorbis audio**, **large AVI video files**, and **EXIF Original Preservation Images**. Relevant to SocialForge because: |
| 22 | - Live video signing matters if you're producing Reels / TikTok / Shorts streaming content alongside the planned monthly batch. |
| 23 | - EXIF Original Preservation Image format is the cleanest path for signing product photography that the brand wants to preserve through ad ops cropping. |
| 24 | - **C2PA Spec 2.4** (April 2026 — [spec.c2pa.org/specifications/specifications/2.4](https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html)) introduces the **AI Disclosure Assertion (`c2pa.ai-disclosure`)** — machine-readable AI transparency info that the EU AI Act Article 50 deployer pathway will read. When `c2pa_sign.py` is on a C2PA SDK ≥ 0.36 that handles 2.4, include this assertion alongside the existing IPTC + schema.org tags. The combination is what the **EU Code of Practice WG1/WG2** drafts reference as the canonical machine-readable mark. |
| 25 | - **C2PA Trust List** is now handled via the public C2PA Conformance Program — production signing certificates should come from a Conformance-Program-listed CA. |
| 26 | |
| 27 | For the regulatory context (EU Article 50 voluntary Code of Practice, WG1 providers vs WG2 deployers split, where SocialForge falls), see Digital Marketing Pro's `skills/context-engine/eu-code-of-practice.md` — this is shared regulatory knowledge across the Neelverse Marketing Suite. |
| 28 | |
| 29 | ## When SocialForge invokes this automatically |
| 30 | |
| 31 | If a brand profile sets `c2pa_auto_sign: true`, the image and video generation pipelines call this script as a post-generation step before delivering the asset. The signed file replaces the unsigned one — original output path is preserved. |
| 32 | |
| 33 | If the brand profile does NOT set `c2pa_auto_sign: true`, generated assets are unsigned by default. You can sign on demand by invoking this skill explicitly. |
| 34 | |
| 35 | ## Quick examples |
| 36 | |
| 37 | ```bash |
| 38 | # Sign an image generated by Vertex AI for Instagram |
| 39 | /socialforge:c2pa-sign \ |
| 40 | --input assets/q3-launch-hero.png \ |
| 41 | --output assets/signed/q3-launch-hero.png \ |
| 42 | --brand "Acme Corp" \ |
| 43 | --generator "Vertex AI Nano Banana Pro" \ |
| 44 | --ai-claim ai-generated-content \ |
| 45 | --platform instagram |
| 46 | |
| 47 | # Sign a video generated by Kling for TikTok |
| 48 | /socialforge:c2pa-sign \ |
| 49 | --input campaigns/launch.mp4 \ |
| 50 | --output campaigns/signed/launch.mp4 \ |
| 51 | --brand "Acme Corp" \ |
| 52 | --generator "WaveSpeed Kling v3.0 Pro" \ |
| 53 | --ai-claim ai-generated-content \ |
| 54 | --platform tiktok |
| 55 | |
| 56 | # Production sign with a real C2PA certificate |
| 57 | /socialforge:c2pa-sign \ |
| 58 | --input assets/q3-launch-hero.png \ |
| 59 | --output assets/signed/q3-launch-hero.png \ |
| 60 | --brand "Acme Corp" \ |
| 61 | --generator "Vertex AI Nano B |