feat(media-buy): add spot-level as-run reporting - #6574
Conversation
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated paths touched without required review approval.
This PR adds spot-level as-run delivery reporting: a new supports_spot_breakdown capability (both reporting-capabilities surfaces), a limit-only spot request dimension, and a by_spot response array (allOf delivery-metrics + aired_at/network/station/daypart, required aired_at+impressions) with by_spot_truncated. The reviewer found the change fully coherent — additive-only, schema↔docs in sync, changeset present, delivery-metrics is additionalProperties: true so the allOf composes cleanly, no undiscriminated oneOf, no breaking wire change. No blocking or medium findings.
However, the diff modifies four files under static/schemas/source/**, which are under a deterministic hard approval gate (gated_paths: true), and review_decision is REVIEW_REQUIRED — not APPROVED. Per decision rule row 2, the gate is not satisfied, so this cannot auto-approve and must escalate for human/CODEOWNERS review.
Escalation reasons
- Modifies
static/schemas/source/core/canonical-reporting-capabilities.json,static/schemas/source/core/reporting-capabilities.json,static/schemas/source/media-buy/get-media-buy-delivery-request.json, andstatic/schemas/source/media-buy/get-media-buy-delivery-response.json— protocol schema source under a hard approval gate; requires human/CODEOWNERS approval (review_decisionisREVIEW_REQUIRED).
Why human review
- Modifies gated schema-source files under static/schemas/source/** (canonical-reporting-capabilities.json, reporting-capabilities.json, get-media-buy-delivery-request.json, get-media-buy-delivery-response.json) while review_decision is REVIEW_REQUIRED — hard approval gate not satisfied; requires human/CODEOWNERS approval.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/canonical-reporting-capabilities.json (modified) matches
static/schemas/source/**; static/schemas/source/core/reporting-capabilities.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-response.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.
ede34d1 to
a9f7486
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated schema-source files modified while review not yet APPROVED.
This PR is a clean, additive Normative change adding spot-level as-run delivery reporting: a new optional spot request dimension, supports_spot_breakdown on both capability surfaces, and a channel-neutral by_spot array (aired_at+impressions required; network/station/daypart optional) with a by_spot_truncated sibling. Schema↔docs coherence holds across all four schema files and both docs pages — no drift. The minor changeset is correct for a non-breaking addition; no new undiscriminated oneOf; no released dist/** artifact touched. Tests cover request accept/reject, TV/radio row shapes, required-field enforcement, and both capability surfaces. No critical/high/medium findings.
Despite the clean diff, this PR modifies files under static/schemas/source/** — a hard, deterministic approval gate (gated_paths: true) — and review_decision is REVIEW_REQUIRED, not APPROVED. Per decision-table row 2, the gate is NOT satisfied and Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded. The prior escalate persists on the same deterministic basis.
Note for ratifiers: by_spot requires per-spot impressions, which a GRP/ratings-based linear-TV as-run log may not carry — deliberate and documented; belongs in the ratification memo, not a code finding.
Escalation reasons
- Modifies gated schema-source files under
static/schemas/source/**(canonical-reporting-capabilities.json, reporting-capabilities.json, get-media-buy-delivery-request.json, get-media-buy-delivery-response.json) whilereview_decisionisREVIEW_REQUIRED— hard approval gate not satisfied; requires human/CODEOWNERS approval.
Why human review
- Modifies gated schema-source files under static/schemas/source/** (canonical-reporting-capabilities.json, reporting-capabilities.json, get-media-buy-delivery-request.json, get-media-buy-delivery-response.json) while review_decision is REVIEW_REQUIRED — hard approval gate not satisfied; requires human/CODEOWNERS approval.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/canonical-reporting-capabilities.json (modified) matches
static/schemas/source/**; static/schemas/source/core/reporting-capabilities.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-response.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
reporting_dimensions.spotand discoverablesupports_spot_breakdowncapabilitiesby_spotas-run records for TV, radio, and other scheduled inventoryValidation
Closes #5682