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:
- 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.)
- 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.
Summary
Storyboard YAMLs carry cloned copies of the same step fixtures across four paths:
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
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:
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
Happy to send a PR covering option 1 if you confirm the right fixture locations to touch.