文書ID: miura-verification-workflow-note-v2
公開予定場所: /verification/spec/workflow-v2/
想定公開日: 2026-03-29 JST
ステータス:
workflow-v2 — 公開後は変更しない。改定時は v3 を新設する。
運営者: 有限会社三浦商店(宮城県黒川郡大和町)
本ノートは、施工写真・動画の公開前後に行う半自動ワークフローのうち、公開 artifact の生成、C2PA Phase 1 の公開統合、公開、公開後確認の骨格を第三者が把握できるようにするための公開文書である。
本ノートは以下に適用される。
以下は範囲外である。
公開対象の選定は人が行う。
選定後の命名、manifest 生成、bundle
生成、OTS、publish、公開後確認は半自動で行う。
両 OS は内部の実行経路が異なっても、公開契約は一致しなければならない。
1. オペレータが公開対象の写真・動画を選定する
2. 命名と作業ディレクトリ準備を行う
3. 公開画像群・manifest.json・bundle_manifest.json を生成する
4. C2PA Phase 1 情報を public bundle に統合する
5. bundle_manifest.json の exact bytes に対して OTS receipt を取得する
6. publish staging を組み立てる
7. サーバーへ同期し、公開 URL で取得確認する
8. 必要に応じて onchain follow-up を行う
9. WordPress が _miura_job_id を使って render-time injection を行う
10. live HTML と公開 artifact の整合を確認する
google_ca.pemoriginal/{JOB_ID}/work/{JOB_ID}/registry/manifests/YYYY/MM/{JOB_ID}/manifest.jsonregistry/c2pa_summaries/YYYY/MM/{JOB_ID}/c2pa_summary_{seq:03d}.json(internal — 公開 artifact ではない)case_handoff/{JOB_ID}/case_build_input.jsonpublish/{JOB_ID}/server_root/代表的な処理:
代表的な処理:
manifest.json を生成するbundle_manifest.json を生成するvideo_proof_public.json を生成するC2PA 対応案件では、次の 5 段を生成する。
c2pa_summary_{seq}.jsonbundle_core.source_assets[]case_handoff 内 c2pa.manifest.v1bundle_manifest.json top-level
c2pa_provenance公開仕様として重要なのは 第3段 と 第5段 である。
代表的な処理:
google_ca.pem を含む全公開ファイルの hash
を照合する代表的な処理:
onchain_hinted.json を配置するWordPress は _miura_job_id を起点に公開 artifact
を読み、最終 HTML に verification JSON を注入する。
photo-proof/1BlogPosting JSON-LDc2pa-proof/1(c2pa_provenance
がある案件)video-proof(動画案件)Windows では image-only 中心の既存経路を用いてもよいが、公開 bundle と公開 HTML の契約は macOS と一致しなければならない。
macOS では unified_runner.py
を中心に、写真・動画・bundle・OTS・publish を統合実行してよい。
両 OS で共通に満たすべき点:
manifest.json の公開契約が一致するbundle_manifest.json の公開契約が一致するsource_assets[] と job_provenance_summary
の母集団が一致する_miura_job_id 起点の render-time injection
契約が一致する| 条件 | photo-proof/1 | BlogPosting JSON-LD | c2pa-proof/1 |
|---|---|---|---|
C2PA 対応案件(c2pa_provenance あり) |
出力 | 出力 | 出力 |
C2PA 非対応案件(c2pa_provenance なし) |
出力 | 出力 | 出力しない |
| pre-C2PA 案件 | 出力 | 出力 | 出力しない |
過去案件の canonical artifact を C2PA 対応のためだけに書き換えない。
公開後は少なくとも次を確認する。
bundle_manifest.json が取得できるmanifest.json が取得できるvideo_proof_public.json が取得できるphoto-proof/1 が存在するBlogPosting JSON-LD が存在するc2pa-proof/1 が存在するc2pa-proof/1 の job_provenance_summary が
bundle_manifest.json と整合するc2pa-proof/1.images[] の件数が
source_assets[] と整合するpublished_asset_sha256 がある場合、photo-proof/1.images[] の同一 seq の sha256 と一致する次のようなケースでは公開側または注入側で fail-closed となりうる。
manifest_sha256 や bundle_chain_hash
が合わないsource_assets[] と summary count が一致しないc2pa-proof/1
を整合的に構成できない公開 HTML では c2pa-proof/1
を出さないことで安全側に倒してよい。
ただし生成工程側では、PEM 不在や hash 契約違反のような重大条件は hard
fail とするのが望ましい。
field-level degradation:
published_asset_sha256 は optional helper field であり、manifest.json の hash 照合や schema 検証に失敗した場合は null に落とす。この場合も bundle_manifest.json 側の C2PA public lane が健全であれば、c2pa-proof/1 自体は継続出力してよい。
_miura_job_id 起点の参照方式c2pa-proof/1 の存在条件source_assets[] と c2pa_provenance
の公開関係workflow-v3 を新設する