docs(dooh): support audio-only venue inventory - #7059
Conversation
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated paths touched and human/CODEOWNERS review not yet satisfied.
This PR modifies 8 files under static/schemas/source/**, which are under a hard, path-based approval gate (gated_paths: true). The required review status is REVIEW_REQUIRED, not APPROVED, so decision-table row 2 forces escalation regardless of how clean the diff is.
The reviewer found no Critical/High/Medium findings: all schema changes are description-only clarifications broadening dooh to cover audio-only venue inventory, with verified schema↔docs coherence, an in-scope patch changeset, no oneOf regression, no dist/** mutation, and a genuine new test. The diff is mechanically sound, but the gate lifts only when review_decision becomes APPROVED — that is a human act, not something I can derive from the diff quality.
Escalation reasons
- Touches gated protocol schema files under
static/schemas/source/**(canonical-placement, delivery-metrics, placement-definition, placement, channels, forecastable-metric, property-type, flat-rate-option); human/CODEOWNERS review required andreview_decisionisREVIEW_REQUIRED.
No blocking findings; this can proceed to approval once a required reviewer signs off.
Why human review
- Modifies gated schema files under static/schemas/source/** (8 files) while review_decision is REVIEW_REQUIRED, not APPROVED — hard approval gate (row 2) requires human/CODEOWNERS review.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/canonical-placement.json (modified) matches
static/schemas/source/**; static/schemas/source/core/delivery-metrics.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/placement-definition.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/placement.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/channels.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/forecastable-metric.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/property-type.json (modified) matchesstatic/schemas/source/**; static/schemas/source/pricing-options/flat-rate-option.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.
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated schema files touched without an APPROVED review.
This PR modifies 8 files under static/schemas/source/**, which sit behind a hard, deterministic approval gate (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so decision-table row 2 fires: the gate is not satisfied and the PR cannot be auto-approved regardless of how clean the diff is.
The reviewer's delta pass found no critical/high/medium findings — the only change since the prior clean review was aligning the tavern adagents.json $schema from /schemas/latest/ to /schemas/v3/ in docs/creative/channels/dooh.mdx, matching repo convention, with no test regression (audio-DOOH test still selects via .endsWith('/adagents.json')). The diff is mechanically clean.
However, the hard approval gate stands until a human/CODEOWNERS approval is recorded. This matches the prior decision (also escalate for the same reason).
Escalation reasons
- Modifies gated schema files under
static/schemas/source/**(canonical-placement.json, delivery-metrics.json, placement-definition.json, placement.json, enums/channels.json, enums/forecastable-metric.json, enums/property-type.json, pricing-options/flat-rate-option.json) whilereview_decisionisREVIEW_REQUIRED. A human/CODEOWNERS approval is required before merge.
Why human review
- Modifies gated schema files under static/schemas/source/** (8 files) while review_decision is REVIEW_REQUIRED, not APPROVED — hard approval gate (row 2) requires human/CODEOWNERS review before merge.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/canonical-placement.json (modified) matches
static/schemas/source/**; static/schemas/source/core/delivery-metrics.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/placement-definition.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/placement.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/channels.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/forecastable-metric.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/property-type.json (modified) matchesstatic/schemas/source/**; static/schemas/source/pricing-options/flat-rate-option.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.
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated schema files require human/CODEOWNERS approval.
This PR modifies 8 files under static/schemas/source/**, which are under a hard, deterministic approval gate (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so decision-table row 2 fires: the gate is not satisfied and the PR cannot auto-approve regardless of how clean the diff is.
The reviewer found no Critical/High/Medium findings. The changes are a coherent DOOH-semantics clarification: description-only edits to the dooh channel and property-type enums (values unchanged, no wire drift), matching prose across DOOH/media-products/taxonomy docs, a broadened supported_channels example that is schema-valid, and a test that parses the doc's own JSON block to keep them in lockstep. The patch changeset scope is correct. Schema↔docs coherence holds.
No blocking findings, but the hard schema-source approval gate stands until a human/CODEOWNERS approval is recorded.
Escalation reasons
- Modifies gated schema files under
static/schemas/source/**(8 files) whilereview_decisionisREVIEW_REQUIRED, notAPPROVED— row 2 hard approval gate requires human/CODEOWNERS review before merge.
Why human review
- Modifies gated schema files under static/schemas/source/** (8 files: canonical-placement.json, delivery-metrics.json, placement-definition.json, placement.json, enums/channels.json, enums/forecastable-metric.json, enums/property-type.json, pricing-options/flat-rate-option.json) while review_decision is REVIEW_REQUIRED, not APPROVED. Hard approval gate (row 2) requires human/CODEOWNERS approval before merge, regardless of a clean diff.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/canonical-placement.json (modified) matches
static/schemas/source/**; static/schemas/source/core/delivery-metrics.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/placement-definition.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/placement.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/channels.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/forecastable-metric.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/property-type.json (modified) matchesstatic/schemas/source/**; static/schemas/source/pricing-options/flat-rate-option.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.
# Conflicts: # tests/audio-radio-formats.test.cjs
Add an explicit note in the Storyboard coverage section that the current sales-dooh storyboard exercises the visual (screen) path — image format, screen-compatible creative sync, and screen-specific dooh_metrics fields. Audio-only DOOH is documented but not yet covered by this conformance storyboard. Addresses review feedback from @garvitkaushik-123 on PR #7059.
|
@garvitkaushik-123 good catch — the medium-neutral prose in those three bullets was misleading without a corresponding disclaimer. Pushed a follow-up commit that adds an explicit note immediately after the numbered list:
That keeps the broader language in steps 2–4 (which is accurate as a description of what the storyboard structure does) while making it unambiguous to a reader that the concrete exercises are still screen-only and an audio creative would fail step 3. Generated by Claude Code |
|
Ladon cannot review this PR until merge conflicts are resolved. |
garvitkaushik-123
left a comment
There was a problem hiding this comment.
Schemas build, tests pass, example JSON validates against branch schemas, and the new storyboard disclaimer clarifies the visual-only scope. LGTM.
|
The branch is now synchronized with current |
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated schema paths require human/CODEOWNERS approval.
This PR (#7059, audio-only DOOH clarification) is a clean, description-only pass: all eight static/schemas/source/** edits change only descriptions — no field, required, enum, or oneOf changes — carrying a correctly-scoped patch changeset. Docs and schema descriptions move in lockstep, new dooh.mdx examples validate against real schemas, and no dist/** artifact is touched. The reviewer surfaced no critical/high/medium findings.
However, the PR modifies files under a hard, non-overridable approval gate (static/schemas/source/**) and the current review_decision is REVIEW_REQUIRED, not APPROVED. Per decision rule row 2, this blocks auto-approval regardless of how clean the diff is. The gate lifts only when a human/CODEOWNERS approval is recorded.
Escalation reasons
- Modifies gated schema files under
static/schemas/source/**(canonical-placement.json, delivery-metrics.json, placement-definition.json, placement.json, enums/channels.json, enums/forecastable-metric.json, enums/property-type.json, pricing-options/flat-rate-option.json) whilereview_decisionisREVIEW_REQUIRED. Human/CODEOWNERS approval required before merge.
Why human review
- Modifies gated schema files under static/schemas/source/** (8 files: canonical-placement.json, delivery-metrics.json, placement-definition.json, placement.json, enums/channels.json, enums/forecastable-metric.json, enums/property-type.json, pricing-options/flat-rate-option.json) while review_decision is REVIEW_REQUIRED, not APPROVED. Hard approval gate (row 2) requires human/CODEOWNERS approval before merge, regardless of a clean diff.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/canonical-placement.json (modified) matches
static/schemas/source/**; static/schemas/source/core/delivery-metrics.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/placement-definition.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/placement.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/channels.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/forecastable-metric.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/property-type.json (modified) matchesstatic/schemas/source/**; static/schemas/source/pricing-options/flat-rate-option.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
doohproperty type by venue-operated endpoints rather than physical location alone; a hotel-operated television can be DOOH while a listener-owned phone in a tavern remains personal streamingsupported_channelsis genuinely multi-valued, with each product narrowing to its selling contextaudio_hosted/audio_daastformats and clarify that screen-specific placement fields are optionalaudio_distribution_typesfocused on the underlying feed; this PR does not add a venue/location valueThe broader cross-channel decomposition of
property_type—including endpoint operator, decision locus, audience derivation, and measurement currency—is intentionally deferred to the 3.3 follow-up in #7111.Structured coordinates and coverage remain in #5538 and are not invented here; coordinates stay metadata rather than identity.
Testing
npm run test:audio-radionpm run build:schemasnpm run test:schemasnpm run lint:schema-linksnpm run test:owned-linksCloses #5878