Skip to content

[codex] Add signal definition enrichment#5017

Draft
bokelley wants to merge 23 commits into
mainfrom
bokelley/review-signal-schema-followup
Draft

[codex] Add signal definition enrichment#5017
bokelley wants to merge 23 commits into
mainfrom
bokelley/review-signal-schema-followup

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

@bokelley bokelley commented May 25, 2026

Summary

Extends core/signal-definition.json with definition-side enrichment for signal meaning, methodology, modeling, jurisdiction applicability, consent basis, and per-signal data-subject-rights routing.

This keeps #5009's separation intact: product/buy-time composition stays on product signal targeting options, while stable signal semantics live on the published signal definition.

Key decisions

  • Adds taxonomy as signal-definition metadata, not as a new signal-value-type.
  • Keeps package targeting grammar limited to the existing binary, categorical, and numeric value types.
  • Adds taxonomy.value_mappings so categorical allowed_values[] can map to stable taxonomy nodes without changing the wire value grammar.
  • Declares parent taxonomy node behavior with taxonomy.parent_match_behavior so descendant expansion is explicit seller behavior, not an implicit schema rule.
  • Uses channel-based data_subject_rights routing to avoid duplicating {url,email} blocks per right.
  • Adds core/signal-modeling-disclosure.json instead of reusing creative provenance.disclosure, because modeled data-signal disclosure is not content provenance/render guidance.
  • Tightens modeled-signal validation: modeled training jurisdictions must be non-empty, and required modeling disclosures must name applicable jurisdictions.
  • Allows panel as a signal data_sources value for JIC/panel-derived audiences, while keeping co-viewing uplift and seller/JIC reconciliation on measurement/vendor-metric surfaces.
  • Clarifies the broad-feed workflow: use get_signals for candidate discovery, then confirm product eligibility/composability through get_products.filters.signal_targeting or the product response before create_media_buy.
  • Leaves selection_group and targeting-mode composition concerns out of signal-definition; those remain product/buy-time concerns.
  • Rewords the signal docs and schema descriptions to use “published signal definitions” / adagents.json signals[], avoiding confusion with sync_catalogs.
  • Addressed protocol and product expert review feedback for schema invariants, categorical taxonomy mapping, provider docs, get_signals/product workflow guidance, and JIC/panel measurement placement.

Validation

  • npm run test:schemas
  • npm run test:composed
  • npm run test:schema-utf8
  • npm run test:json-schema
  • npm run test:storyboard-context-entity
  • npm run check:x-entity-gaps (informational existing-gap report only)
  • git diff --check
  • precommit hook: test:unit, test:test-dynamic-imports, test:callapi-state-change, typecheck

@bokelley bokelley force-pushed the bokelley/review-signal-schema-followup branch from 67f6962 to 5035ba7 Compare May 25, 2026 03:32
@bokelley bokelley changed the base branch from main to bokelley/signal-targeting-overlays May 25, 2026 03:32
@bokelley bokelley force-pushed the bokelley/review-signal-schema-followup branch 2 times, most recently from bc5221c to 03db9db Compare May 25, 2026 03:44
@bokelley bokelley changed the title [codex] Add signal definition catalog enrichment [codex] Add signal definition enrichment May 25, 2026
@bokelley bokelley force-pushed the bokelley/review-signal-schema-followup branch from 03db9db to fd41e83 Compare May 25, 2026 03:48
@bokelley bokelley force-pushed the bokelley/signal-targeting-overlays branch from 54c07c4 to e61c5b2 Compare May 25, 2026 09:14
@bokelley bokelley force-pushed the bokelley/signal-targeting-overlays branch from e61c5b2 to 1c9aa17 Compare May 25, 2026 09:59
bokelley added 3 commits May 25, 2026 06:00
…ys' into bokelley/review-signal-schema-followup

# Conflicts:
#	.changeset/signal-targeting-overlay.md
#	docs/media-buy/advanced-topics/targeting.mdx
#	docs/media-buy/product-discovery/media-products.mdx
#	docs/media-buy/task-reference/create_media_buy.mdx
#	docs/media-buy/task-reference/get_products.mdx
#	docs/media-buy/task-reference/sync_audiences.mdx
#	docs/protocol/capabilities-explorer.mdx
#	docs/protocol/get_adcp_capabilities.mdx
#	docs/reference/glossary.mdx
#	docs/signals/data-providers.mdx
#	docs/signals/key-concepts.mdx
#	docs/signals/tasks/get_signals.mdx
#	static/schemas/source/adagents.json
#	static/schemas/source/core/package-signal-targeting.json
#	static/schemas/source/core/product-signal-targeting-option.json
#	static/schemas/source/core/product.json
#	static/schemas/source/core/signal-definition.json
#	static/schemas/source/core/signal-id.json
#	static/schemas/source/core/signal-ref.json
#	static/schemas/source/core/signal-targeting-rules.json
#	static/schemas/source/core/targeting.json
#	static/schemas/source/core/x-entity-types.json
#	static/schemas/source/index.json
#	static/schemas/source/protocol/get-adcp-capabilities-response.json
#	static/schemas/source/signals/get-signals-response.json
#	tests/composed-schema-validation.test.cjs
…ys' into bokelley/review-signal-schema-followup
@bokelley bokelley force-pushed the bokelley/signal-targeting-overlays branch from 1c9aa17 to d0afd3f Compare May 25, 2026 10:21
@bokelley bokelley force-pushed the bokelley/signal-targeting-overlays branch from d0afd3f to bd541f8 Compare May 25, 2026 11:46
@bokelley bokelley force-pushed the bokelley/signal-targeting-overlays branch from bd541f8 to 9dbc80e Compare May 25, 2026 12:16
@bokelley bokelley force-pushed the bokelley/signal-targeting-overlays branch from 9dbc80e to 92e49f4 Compare May 25, 2026 12:31
claude and others added 4 commits May 25, 2026 18:45
Adds one sentence clarifying that the seller_planned model applies to
any time-bound supply scheduled in advance, not only linear broadcast
audio — live sports, political programming, and tentpole broadcasts
follow the same primitive.

Prompted by iHeartMedia AudioGraph comment on PR thread.

https://claude.ai/code/session_019VvFeX77WCZen9dZCmkgsq
…ys' into bokelley/review-signal-schema-followup
bokelley added 3 commits May 25, 2026 16:03
…ys' into bokelley/review-signal-schema-followup

# Conflicts:
#	docs/media-buy/product-discovery/media-products.mdx
#	docs/media-buy/task-reference/create_media_buy.mdx
#	docs/media-buy/task-reference/get_products.mdx
#	static/schemas/source/core/product-filters.json
Base automatically changed from bokelley/signal-targeting-overlays to main May 25, 2026 22:24
bokelley added 2 commits May 26, 2026 11:06
…l-schema-followup

# Conflicts:
#	.changeset/signal-targeting-overlay.md
#	docs/media-buy/advanced-topics/targeting.mdx
#	docs/media-buy/product-discovery/media-products.mdx
#	docs/media-buy/task-reference/create_media_buy.mdx
#	docs/media-buy/task-reference/get_products.mdx
#	docs/media-buy/task-reference/sync_audiences.mdx
#	docs/protocol/capabilities-explorer.mdx
#	docs/protocol/get_adcp_capabilities.mdx
#	docs/reference/glossary.mdx
#	docs/reference/whats-new-in-3-1.mdx
#	docs/signals/data-providers.mdx
#	docs/signals/key-concepts.mdx
#	docs/signals/specification.mdx
#	docs/signals/tasks/activate_signal.mdx
#	docs/signals/tasks/get_signals.mdx
#	static/compliance/source/protocols/media-buy/index.yaml
#	static/schemas/source/adagents.json
#	static/schemas/source/core/package-signal-targeting.json
#	static/schemas/source/core/product-filters.json
#	static/schemas/source/core/product-signal-targeting-option.json
#	static/schemas/source/core/product.json
#	static/schemas/source/core/signal-definition.json
#	static/schemas/source/core/signal-id.json
#	static/schemas/source/core/signal-listing.json
#	static/schemas/source/core/signal-ref.json
#	static/schemas/source/core/targeting.json
#	static/schemas/source/core/x-entity-types.json
#	static/schemas/source/index.json
#	static/schemas/source/protocol/get-adcp-capabilities-response.json
#	static/schemas/source/signals/get-signals-response.json
#	tests/composed-schema-validation.test.cjs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants