feat(creative): declare synthetic depictions - #6576
Conversation
There was a problem hiding this comment.
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, andstatic/schemas/source/enums/error-code.jsonare under the hard approval gate (static/schemas/source/**);review_decisionisREVIEW_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) matchesstatic/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matchesstatic/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.
|
Ladon note addressed: the two removed |
c45a0cd to
77b5d17
Compare
There was a problem hiding this comment.
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, andstatic/schemas/source/enums/error-code.json— all under thestatic/schemas/source/**hard approval gate — whilereview_decisionisREVIEW_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) matchesstatic/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matchesstatic/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.
|
Ladon cannot review this PR until merge conflicts are resolved. |
265f0b8 to
cac252a
Compare
There was a problem hiding this comment.
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, andstatic/schemas/source/enums/error-code.jsonunder thestatic/schemas/source/**hard approval gate whilereview_decisionisREVIEW_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) matchesstatic/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matchesstatic/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.
Summary
provenance.synthetic_depictionboolean, where both values are declarations and omission means unassessedcreative_policy.provenance_requirements.require_synthetic_depictionPROVENANCE_SYNTHETIC_DEPICTION_MISSINGerror, generated compliance reference, docs, and end-to-end contract testsadditionalProperties: truedefaults so the media-buy MCP model-context profile remains below its 384 KiB ceilingValidation
Closes #6512