Skip to content

feat(media-buy): add spot-level as-run reporting - #6574

Open
bokelley wants to merge 1 commit into
mainfrom
codex/spot-as-run-reporting
Open

feat(media-buy): add spot-level as-run reporting#6574
bokelley wants to merge 1 commit into
mainfrom
codex/spot-as-run-reporting

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • add opt-in reporting_dimensions.spot and discoverable supports_spot_breakdown capabilities
  • return channel-neutral, chronologically ordered by_spot as-run records for TV, radio, and other scheduled inventory
  • document complete-log and truncation semantics and add focused schema contract coverage

Validation

  • focused spot-delivery contract: 4 passed
  • schema validation: 30 passed
  • composed schema validation: 382 passed
  • MCP projection/analysis: 24 passed
  • pre-commit: 1,043 canonical tests plus 6,127 server tests passed (30 skipped), typecheck passed

Closes #5682

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

@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 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, and static/schemas/source/media-buy/get-media-buy-delivery-response.json — protocol schema source under a hard approval gate; requires human/CODEOWNERS approval (review_decision is REVIEW_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) matches static/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-request.json (modified) matches static/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-response.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 enabled auto-merge (squash) August 15, 2026 16:36
@bokelley
bokelley force-pushed the codex/spot-as-run-reporting branch from ede34d1 to a9f7486 Compare August 15, 2026 20:44

@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-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) while review_decision is REVIEW_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) matches static/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-request.json (modified) matches static/schemas/source/**; static/schemas/source/media-buy/get-media-buy-delivery-response.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.

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.

Linear TV: spot-level as-run airing log in delivery reporting

1 participant