Skip to content

feat(creative): declare synthetic depictions - #6576

Merged
bokelley merged 3 commits into
mainfrom
codex/synthetic-depiction-provenance
Aug 16, 2026
Merged

feat(creative): declare synthetic depictions#6576
bokelley merged 3 commits into
mainfrom
codex/synthetic-depiction-provenance

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • add the assessed provenance.synthetic_depiction boolean, where both values are declarations and omission means unassessed
  • let sellers require that declaration through creative_policy.provenance_requirements.require_synthetic_depiction
  • add the canonical correctable PROVENANCE_SYNTHETIC_DEPICTION_MISSING error, generated compliance reference, docs, and end-to-end contract tests
  • preserve open-object JSON Schema semantics while omitting two redundant explicit additionalProperties: true defaults so the media-buy MCP model-context profile remains below its 384 KiB ceiling

Validation

  • focused synthetic-depiction contract tests (5)
  • schema validation (30), composed schemas (382), and JSON documentation validation
  • MCP schema projection/size bounds (24)
  • error vocabulary/drift, compliance snippets, docs navigation/schema links, changeset scope, and typecheck
  • precommit canonical suite (1,043); isolated server regression files (29)
  • current and 3.0-compatible storyboard matrices across all seven tenants

Closes #6512

Comment thread static/schemas/source/core/provenance.json

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ladon verdict: Escalate to human review

Escalate — gated path change requires human/CODEOWNERS approval.

This PR is an additive Normative-class change for AdCP 3.2: adds an assessed synthetic_depiction boolean to provenance, a require_synthetic_depiction seller policy gate, and the PROVENANCE_SYNTHETIC_DEPICTION_MISSING error code. Schema, all four doc surfaces, the drift disposition (target_version 3.2), and the minor changeset are mutually coherent and covered by a new focused test. No critical/high findings were surfaced, and the single finding is low severity.

However, the diff modifies gated files under static/schemas/source/** (creative-policy.json, provenance.json, error-code.json) and review_decision is REVIEW_REQUIRED, not APPROVED. Per the deterministic gated-paths hard gate (decision rule row 2), this cannot auto-approve and must go to a human/CODEOWNERS reviewer.

Escalation reasons

  • static/schemas/source/core/creative-policy.json, static/schemas/source/core/provenance.json, and static/schemas/source/enums/error-code.json are under the hard approval gate (static/schemas/source/**); review_decision is REVIEW_REQUIRED. Human/CODEOWNERS approval is required before merge.

Non-blocking note (low): additionalProperties: true removed from only 2 of 9 provenance subobjects (provenance.json:33) — worth a consistency pass but not blocking.

Why human review

  • static/schemas/source/core/creative-policy.json, static/schemas/source/core/provenance.json, static/schemas/source/enums/error-code.json are under the static/schemas/source/** hard approval gate and review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.
  • This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/creative-policy.json (modified) matches static/schemas/source/**; static/schemas/source/core/provenance.json (modified) matches static/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matches static/schemas/source/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@aao-secretariat aao-secretariat Bot added the ladon/needs-human-review Ladon has escalated this PR for human review. label Aug 15, 2026
@bokelley

Copy link
Copy Markdown
Contributor Author

Ladon note addressed: the two removed additionalProperties: true declarations were redundant under draft-07 (objects remain open by default) and were selected specifically to keep the media-buy MCP model-context projection below its 384 KiB safety ceiling. The other provenance subobjects retain explicit declarations because removing them is unnecessary for this change; changing all nine would broaden an otherwise focused normative diff without altering validation semantics.

@bokelley
bokelley enabled auto-merge (squash) August 15, 2026 17:04
@bokelley
bokelley force-pushed the codex/synthetic-depiction-provenance branch from c45a0cd to 77b5d17 Compare August 15, 2026 19:31

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ladon verdict: Escalate to human review

Escalate — gated schema paths require human/CODEOWNERS approval.

This PR is an additive (Normative-class) AdCP 3.2 change: a new optional provenance.synthetic_depiction boolean, a creative_policy.require_synthetic_depiction gate, and a PROVENANCE_SYNTHETIC_DEPICTION_MISSING error code. The reviewer found the schema↔docs coherence intact across provenance.json, creative-policy.json, error-code.json, both governance/compliance docs, and the drift-disposition file; the changeset and new wired-in test are correct; and the removal of explicit additionalProperties: true from eight provenance objects is a draft-07 no-op aligned with DR-0009. No critical/high/medium findings.

However, the diff modifies files under static/schemas/source/**, which is a hard, non-overridable approval gate (gated_paths: true), and the current GitHub review_decision is REVIEW_REQUIRED, not APPROVED. Per decision-table row 2, this must escalate for human/CODEOWNERS approval regardless of how clean the diff is. Since the reviewer surfaced no actionable findings, the escalation is purely the deterministic gate — no code changes are being requested.

Escalation reasons

  • Modifies static/schemas/source/core/provenance.json, static/schemas/source/core/creative-policy.json, and static/schemas/source/enums/error-code.json — all under the static/schemas/source/** hard approval gate — while review_decision is REVIEW_REQUIRED. Human/CODEOWNERS approval is required before merge.

Why human review

  • Modifies static/schemas/source/core/provenance.json, static/schemas/source/core/creative-policy.json, and static/schemas/source/enums/error-code.json under the static/schemas/source/** hard approval gate while review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.
  • This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/creative-policy.json (modified) matches static/schemas/source/**; static/schemas/source/core/provenance.json (modified) matches static/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matches static/schemas/source/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@aao-secretariat

Copy link
Copy Markdown
Contributor

Ladon cannot review this PR until merge conflicts are resolved.

@bokelley
bokelley force-pushed the codex/synthetic-depiction-provenance branch from 265f0b8 to cac252a Compare August 15, 2026 20:37

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ladon verdict: Escalate to human review

Escalate — hard approval gate on static/schemas/source/** is not satisfied.

This PR modifies protocol source-of-truth schema files under the static/schemas/source/** hard approval gate (gated_paths: true), while review_decision is REVIEW_REQUIRED, not APPROVED. Per decision-table row 2, this must escalate until a human/CODEOWNERS approval is recorded.

The reviewer found the change to be clean and well-formed: an additive AdCP 3.2 provenance change (new assessed synthetic_depiction boolean, require_synthetic_depiction seller-policy field, canonical PROVENANCE_SYNTHETIC_DEPICTION_MISSING error code). Schema, docs (provenance.mdx, provenance-verification.mdx, compliance-error-codes.mdx), error-code enum/metadata, drift disposition, and a new contract test are mutually coherent; the minor changeset is correct for Normative additions; the additionalProperties: true removals are no-ops. No critical/high/medium findings.

There are no blocking code findings — the escalation is purely the mechanical gated-path requirement (and matches the prior escalate decision). Once a human/CODEOWNERS approval is recorded, this PR falls through to a normal approve.

Escalation reasons:

  • Modifies static/schemas/source/core/provenance.json, static/schemas/source/core/creative-policy.json, and static/schemas/source/enums/error-code.json under the static/schemas/source/** hard approval gate while review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.

Why human review

  • Modifies static/schemas/source/core/provenance.json, static/schemas/source/core/creative-policy.json, and static/schemas/source/enums/error-code.json under the static/schemas/source/** hard approval gate while review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.
  • This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/creative-policy.json (modified) matches static/schemas/source/**; static/schemas/source/core/provenance.json (modified) matches static/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matches static/schemas/source/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@bokelley
bokelley disabled auto-merge August 16, 2026 06:26
@bokelley
bokelley merged commit aee4f79 into main Aug 16, 2026
50 checks passed
@bokelley
bokelley deleted the codex/synthetic-depiction-provenance branch August 16, 2026 06:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ladon/needs-human-review Ladon has escalated this PR for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Provenance: synthetic-depiction declaration and policy gate

1 participant