Skip to content

feat: scenarios as YAML, suite profiles, sync tool - #10

Open
RobertCrupa wants to merge 4 commits into
feat/workflow-runner-corefrom
feat/scenario-suites
Open

RobertCrupa wants to merge 4 commits into
feat/workflow-runner-corefrom
feat/scenario-suites

Conversation

@RobertCrupa

Copy link
Copy Markdown

Moves scenario source of truth to `scenarios///.yaml` with per-item checks, judge-facing `expectedOutput`, and item titles. Adds suite profiles (`profiles/*.yaml`) declaring what each suite tests, tools per skill, and fix areas. Adds `tools/` to sync scenarios to Langfuse and validate them.

Depends on the runner core from #9.

🤖 Generated with Claude Code

@RobertCrupa
RobertCrupa added this pull request to stack #12 September 21, 2026 13:26
Scenario source of truth moves to scenarios/<suite>/<owner>/<subject>.yaml
with per-item checks, judge-facing expectedOutput and item titles. Suite
profiles (profiles/*.yaml) declare what each suite tests, tools per skill,
and fix areas. tools/ syncs scenarios to Langfuse and validates them. Builds
on feat/workflow-runner-core.
…hing

loadSuite recorded "prompt is empty" / "expected is empty" and then kept
going, so the next line dereferenced the missing field and a single bad
scenario file killed validation and sync for the whole suite.
The per-scenario timeoutSecs is documented in scenarios/README.md and
written into dataset-item metadata, but the session killer only ever used
the Actor-level perItemTimeoutSecs, so the override was silently ignored.
The usage scenario says it tests comprehension of the required booleans,
but apify.input + required[] only checks that a key is present, so an
agent submitting forRent: true, sold: true still passed. Add equals
assertions for the four flags and cover the value semantics in the
contract checks tests.
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.

3 participants