Skip to content

compliance: add vendor_metric optimization-goal storyboard coverage #4933

@bokelley

Description

@bokelley

Problem

3.1 adds optimization_goals[].kind: "vendor_metric" plus product-level vendor_metric_optimization.supported_metrics[]. Existing vendor-metric storyboard coverage (media_buy_seller/vendor_metric_accountability) covers declaration → filter → delivery emission, but not optimization-goal acceptance/rejection.

A seller can currently pass the vendor-metric reporting storyboard without proving it enforces the 3.1 vendor-metric optimization contract.

Scope

Add a media-buy storyboard that exercises the full vendor-metric optimization path:

  1. Product discovery returns vendor_metric_optimization.supported_metrics[] for a (vendor, metric_id) pair and target kind.
  2. Create media buy accepts an optimization_goals[] entry with kind: "vendor_metric" when all preconditions are met.
  3. Seller rejects a vendor-metric goal when the product lacks matching vendor_metric_optimization capability.
  4. Seller rejects a vendor-metric goal when the package lacks matching vendor-scope committed_metrics[].
  5. When possible, seller rejects or advisories a goal whose metric_id is not discoverable in the vendor metric catalog, matching the 3.1 SHOULD / next-minor MUST cadence.

Acceptance

  • New storyboard or scenario under static/compliance/source/protocols/media-buy/scenarios/ covers positive and negative paths.
  • Training-agent fixtures include a product with vendor_metric_optimization.supported_metrics[].
  • Negative paths assert TERMS_REJECTED or the canonical error specified by the task reference.
  • The existing vendor-metric declaration/filter/emission storyboard remains intact.
  • npm run test:storyboards stays green.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.compliance-suiteenhancementNew feature or requestmedia-buyIssue concerns the media-buy protocol domainspec / protocol

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions