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:
- Product discovery returns
vendor_metric_optimization.supported_metrics[] for a (vendor, metric_id) pair and target kind.
- Create media buy accepts an
optimization_goals[] entry with kind: "vendor_metric" when all preconditions are met.
- Seller rejects a vendor-metric goal when the product lacks matching
vendor_metric_optimization capability.
- Seller rejects a vendor-metric goal when the package lacks matching vendor-scope
committed_metrics[].
- 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
Problem
3.1 adds
optimization_goals[].kind: "vendor_metric"plus product-levelvendor_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:
vendor_metric_optimization.supported_metrics[]for a(vendor, metric_id)pair and target kind.optimization_goals[]entry withkind: "vendor_metric"when all preconditions are met.vendor_metric_optimizationcapability.committed_metrics[].metric_idis not discoverable in the vendor metric catalog, matching the 3.1 SHOULD / next-minor MUST cadence.Acceptance
static/compliance/source/protocols/media-buy/scenarios/covers positive and negative paths.vendor_metric_optimization.supported_metrics[].TERMS_REJECTEDor the canonical error specified by the task reference.npm run test:storyboardsstays green.References
kind: "vendor_metric"static/compliance/source/protocols/media-buy/scenarios/vendor_metric_accountability.yaml