spec(compliance): wire audience-sync with status.monotonic (adcp-client#782)#2880
Merged
Merged
Conversation
…nt#782) Close the last gap from adcp#2829. audience-sync was skipped in the original wiring because there was no named audience-status enum in the spec. That landed in adcp#2836, and the audience transition graph went into @adcp/client's bundled status.monotonic default in adcp-client#782 (shipped in 5.11.0). Wire the specialism YAML to opt in, bump the dep. Transition table is fully bidirectional across processing / ready / too_small — the graph allows ready ↔ processing on re-sync, ready ↔ too_small as counts cross minimum_size, and the re-sync path too_small → processing → ready. Off-graph regressions fail here rather than slipping past per-step schema checks. Local storyboard run against the training agent passes clean (no status.monotonic hits). No wire change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
audience-sync/index.yamlwithinvariants: [status.monotonic], closing the last gap from adcp#2829.sync_audiencesresponses now carry the same cross-step lifecycle gating as media_buy, creative, account, si_session, catalog_item, proposal, and creative_approval.@adcp/client^5.10.0 → ^5.11.0to pick up the audience transition graph added in adcp-client#782.How the arc ends
status.monotonicon 20 specialisms;audience-syncwas skipped (no named enum)./schemas/enums/audience-status.jsonand documented the permissive transitions in prose.AUDIENCE_TRANSITIONSto the bundledstatus.monotonicdefault + extractor forsync_audiences. Shipped in@adcp/client@5.11.0.Transition table
Fully bidirectional across
processing / ready / too_small— the graph allowsready ↔ processingon re-sync,ready ↔ too_smallas counts crossminimum_size, and the re-sync pathtoo_small → processing → ready. Off-graph regressions (e.g. seller silently downgradingreadyto an unknown enum value) fail here rather than slipping past per-step schema checks.action: deleted | failedrows omitstatuson the envelope per spec — the extractor's id+status guard makes those silent (absence isn't a transition — adcp#2838 tracks the separate seller-initiated-archival gap).Test plan
npm run build:compliance— 10 universal, 6 protocols, 24 specialisms bundled, no lint regressionsrun-storyboards --filter audienceagainst the training agent —1/1 clean, zerostatus.monotonichitspackage-lock.jsonupdated to@adcp/client@5.11.0Closes the arc
With this merged, every specialism whose phases exercise a lifecycle-bearing resource is gated by
status.monotonic. The #2639 umbrella was closed on 2026-04-22; this PR completes the audience-shaped follow-up that was outstanding from it.🤖 Generated with Claude Code