Skip to content

Tell the judge which adaptors exist - #672

Open
elias-ba wants to merge 1 commit into
mainfrom
fix/judge-adaptor-names
Open

Tell the judge which adaptors exist#672
elias-ba wants to merge 1 commit into
mainfrom
fix/judge-adaptor-names

Conversation

@elias-ba

@elias-ba elias-ba commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Short Description

Gives the acceptance-test judge the real list of adaptor packages, so it stops flagging genuine adaptors as invented.

Fixes #671

Implementation Details

The workflow expert failed a spec because it decided @openfn/language-redis was made up. It is published, and the service offers it to the model in the prompt, so the model chose an adaptor it was given.

The judge contradicted itself: one rule asked it to flag an adaptor that "doesn't correspond to a real system", another two rules below said it has no reliable knowledge of adaptors and must not claim one does not exist.

build_adaptor_names follows build_adaptor_docs, which already grounds claims about function signatures: same fail-open contract, same size cap. It only goes to workflow_chat specs, since the block tells the judge that service was offered the list.

validate_adaptors had two faults underneath. It treated an empty list as "no adaptor exists" rather than "the lookup failed", so a container that can't reach the adaptor list would call every adaptor in every workflow invented. And it stripped the version before the prefix, so only a fully qualified name with a version ever matched; the other three shapes reported as invented. Both would have turned into Sentry noise now that it reports rather than only logs.

poetry run pytest services/*/tests/unit — 129 passed, eight of them new here, and each fails when the thing it pins is removed.

services/testing/tests was missing from testpaths, though CI's services/*/tests/unit glob would have picked it up. It's there now so a bare pytest covers it too.

AI Usage

Please disclose whether you've used AI in this work (it's cool, we just want to know!):

  • Yes, I have used AI
  • No, I have not used AI

You can read more details in our Responsible AI Policy

The workflow expert was asked to flag an adaptor that "doesn't correspond to a
real system", and told two rules below that it has no reliable knowledge of
adaptors. It followed the first using the memory the second warns about, and
failed a spec because @openfn/language-redis looked made up. It is real, and
the service offers it to the model in the prompt.

The judge now gets that same list, the way build_adaptor_docs already grounds
claims about function signatures, and only for workflow_chat specs, since the
block tells the judge the workflow service offered it.

validate_adaptors skips when the list comes back empty, which means the lookup
failed rather than that no adaptor exists. Without that, a container that cannot
reach the adaptor list calls every adaptor in every workflow invented. It also
stripped the version before the prefix, so only a fully qualified name with a
version ever matched.
@elias-ba
elias-ba force-pushed the fix/judge-adaptor-names branch from 74a7794 to 18e6e39 Compare September 4, 2026 23:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The workflow expert judge flags real adaptors as invented

1 participant