Skip to content

Storyboard fixture duplication across domains/protocols/specialisms paths — audit for incomplete fixes #2763

@bokelley

Description

@bokelley

Summary

Storyboard YAMLs carry cloned copies of the same step fixtures across four paths:

  • `static/storyboards/domains//index.yaml`
  • `static/storyboards/protocols//index.yaml`
  • `static/storyboards/specialisms//index.yaml`
  • (Plus universal bundles)

When a `sample_request` bug gets fixed in one path, the clones keep bleeding the same bug — upstream fixes for #2740 (check_governance caller) and #2741 (build_creative target_format_id) only patched `domains/`; the `specialisms/` copies still fail.

Evidence from current cache

fixture file state
`check_governance` (caller) `domains/governance/index.yaml` ✓ fixed
`check_governance` (caller) `protocols/governance/index.yaml` ✓ already had it
`check_governance` (caller) `specialisms/governance-spend-authority/index.yaml` ❌ missing
`check_governance` (caller) `specialisms/governance-delivery-monitor/index.yaml` ❌ missing

Independently verified via a logging TCP proxy: the wire payload for `check_governance` in `governance-spend-authority` omits `caller` entirely, matching the `specialisms/` fixture, not the `domains/` one.

Same pattern suspected for `build_creative` in `specialisms/creative-template` (the `build_multi_format` step sends `creative_manifest` without `format_id`).

Ask

Either:

  1. Audit + patch all clones in one pass — for every fixed step fixture in `domains/` and `protocols/`, find the corresponding `specialisms/` copies and apply the same fix. (Fastest unblock — matrix harnesses resume passing.)
  2. De-duplicate the storyboard source — if the specialism storyboards are meant to inherit from domain storyboards, build-step the inheritance instead of cloning the YAML. One canonical fixture per step.

Option 2 prevents this class of drift for good; option 1 unblocks downstream conformance runs today. I'd pick both: patch the clones now, file a separate issue for option 2.

Affected consumers

  • `@adcp/client` matrix harness (every retail-media / governance / creative specialism run surfaces the gap as `-32602`)
  • Any third-party conformance runner pointing at `specialisms/` storyboards

Happy to send a PR covering option 1 if you confirm the right fixture locations to touch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions