Repository navigation
fix(compliance): align required tools selector semantics - #2890
Conversation
Exact-head manual interop evidenceThe existing
This closes the exact-head interop evidence gap only. The |
Published 13.x prerequisite stackThe maintenance-branch safety prerequisites are now published as Draft PRs:
All three remain Draft, auto-merge off, and awaiting genuine human maintainer review. The workflow PRs cannot self-prove their new 13.x pull-request triggers because their base workflows exclude 13.x; their local and independent evidence is recorded on the PRs. Do not refresh or merge this PR yet. After #2891 → #2892 → #2893 lands, push/rebase this PR onto the resulting 13.x tip so the newly enabled exact-head CI, CodeQL, and automatic interop checks run. Human administrators should extend branch protection only after observing the exact emitted check names on that refreshed head. |
708ebf5 to
216a855
Compare
There was a problem hiding this comment.
Ladon verdict: Approve
Approve.
PR #2890 aligns comply()'s capability-driven suite selection with the storyboard runner's any-of required_tools semantics. The extracted partitionStoryboardsByRequiredTools now excludes a storyboard only when none of its required tools are discovered, matching the runner (runner.ts:2547) rather than the prior stricter all-of filter. Correct fix, well-tested with three cases (no-tools, any-of exclusion, cross-agent unions), and shipped with an appropriate patch changeset.
No blocking, Medium, or load-bearing Low findings. Not high-risk, no gated paths, no author team gate. Falls through to row 9.
Summary
Fixes #2882 by removing the
required_toolsselector/runner divergence using the established lenient any-of applicability semantics: a storyboard is applicable when at least one listed tool is advertised. The runner already intentionally uses this rule, including unioned multi-agent tool families; this focused backport aligns capability-driven suite selection.Independent semantic audit confirmed that this is the intended behavior, commit
708ebf533ec6ce80552b517d8c99c604f9fa3e23is the smallest correct stable backport, and the helper body is byte-identical to main.Release base and scope
@adcp/sdk@13.0.3, currently npmlatest6424498b695858954ad86585735e27aeb36d38c9708ebf533ec6ce80552b517d8c99c604f9fa3e23a6f29455a9e920ac364b1ca8dcf97381b88128ec+122/-18@adcp/sdkpatch changeset for a possible stable13.0.4Release-ordering gate (blocking)
Do not publish stable
@adcp/sdk@13.0.4until the corrected AdCP 3.1 compliance artifact tracked by adcontextprotocol/adcp#7405 and adcontextprotocol/adcp#7406 is published first, or the artifact and SDK correction are published atomically as one coordinated release.Shipping #2890 alone makes the CLI use the hosted grader's established lenient any-of semantics while the old 3.1.20 compliance data still mis-selects suites. The release coordinator must verify the corrected artifact is available and normal PR CI is green before authorizing publication.
Verification
npm run build— passednpm run typecheck— passednpm run lint— passed (0errors; existing warning-only backlog)3/3passed13,281passed,0failed,0cancelled,7skipped64/64passed30/30passednpm run check:package) — passedLocal optional PostgreSQL caveat: the inherited
DATABASE_URLpointed to an unavailable local service at127.0.0.1:58433, so five optional PG suite setup hooks returnedECONNREFUSEDand cascaded to 115 cancellations. With the optional DB variable unset, the documented skip path was clean and all non-PG suites passed. Normal PR CI remains required before approval or release.Routed
options.agentscoverage to addThe existing regression test manually unions tool arrays; it does not execute the true
options.agentsrouted discovery path. The prepared follow-up test matrix is:agentToolsconflicts with routed discoveryNo test or implementation files are changed by this body-only update. Adding this coverage or changing behavior requires a fresh review of the resulting exact head before the patch is broadened.
Follow-ups and boundaries
hasAnyRequiredToolprimitive so selector and runner semantics cannot drift again.agentToolsoverrides routed discovery.13.xstack until all three have landed. Any later refresh requires coordinator approval and a fresh exact-head/diff review.Human product/release decision required
A maintainer/coordinator must explicitly choose one:
@adcp/sdk@13.0.4release with this correction.This draft does not authorize merge, versioning, npm publication, tag changes, auto-merge, or branch refresh. Human maintainer approval and normal PR CI are required.
Open workspace in Conductor