Skip to content

feat(experiment-setup): add an eval suite for approval before create and start - #235

Open
cromeroLD wants to merge 4 commits into
mainfrom
carmen/experiment-setup-evals
Open

cromeroLD wants to merge 4 commits into
mainfrom
carmen/experiment-setup-evals

Conversation

@cromeroLD

@cromeroLD cromeroLD commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Follow-up to feat(experiment-setup): require approval before creating, starting, or changing the flag #224, which revised this skill and deferred its eval suite.
  • Adds an eval suite for launchdarkly-experiment-setup with 8 cases: complete design, suggested control and unit, ask instead of suggesting, missing pieces, missing event, start with the flag off and the event missing, missing flag, and a running experiment change. Each case has a weight-3 tool check (required lookups, and no writes: no create, start, or flag change) and a weight-1 wording rubric, so the tool check decides pass or fail. Lookup checks accept equivalent alternatives. Write checks stay strict.
  • Skill delivery uses main's inline_skill option, the same way experiment-orchestration does, with force_skill_invocation off. A forced invocation sends a separate turn that interrupts this skill's early lookups. No provider changes.
  • Four tools (get-flag-status-across-envs, list-metric-events, search-contexts, save-and-start-experiment-iteration) are defined only for this suite via tool_definitions and tool_mocks, so other suites don't see them. Their input schemas are copied from the hosted LaunchDarkly MCP. Argument-based test data for existing tools stays in _mock.js, keyed on sentinel values no other suite sends, with unit tests.
  • expose_ask_question is off. No case scripts an answer, and an unscripted call auto-selects the first option.
  • No changes to the shared tool definitions or response templates. Shared changes outside this suite are the sentinel branches in _mock.js and their unit tests, plus registering the suite in the eval README, package.json, and _manifest.js.

Testing

  • npm test: 129/129.
  • npm run eval:experiment-setup twice: 8/8 both times (eval-FCE-2026-10-30T19:00:29, eval-QnX-2026-10-30T19:01:35). Every tool check and rubric scored 1.
  • Comparison suites on this branch, matching main: eval:flag-drift 4/4 (eval-0Qs-2026-10-30T19:02:45), eval:flag-command 3/3 (eval-1oY-2026-10-30T19:04:00), eval:experiment-guide:single pass (eval-clB-2026-10-30T19:04:22), eval:experiment-orchestration:single pass (eval-taQ-2026-10-30T19:06:30).
  • Merged latest origin/main, including experiment-orchestration.

Notes

  • A full experiment-setup run costs about $0.32 (about 389k tokens, a little over a minute at concurrency 4).

Follow-ups (not in this PR):

  • Approval-dependent checks (create after a yes without starting, create a flag only after approval, create despite a missing event) need the skill to phrase approvals as questions with options, or harness support for prose replies.
  • The shared create-experiment description says Bayesian is the default. This skill omits methodology, and the product default is frequentist. The description was left unchanged.

cromeroLD and others added 4 commits October 27, 2026 12:08
…and start

Score the skill's gates for a complete design, suggested versus asked fields, a missing event, and not starting or changing a flag until the user says so.

Co-authored-by: Cursor <cursoragent@cursor.com>
Invoke the skill in the same turn as the request, and grade lookups and forbidden writes instead of ask-question answers that never arrive.

Co-authored-by: Cursor <cursoragent@cursor.com>
…up-evals

Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	evals/README.md
#	evals/package.json
#	evals/providers/claude-skill-agent-sdk.js
#	evals/scripts/_manifest.js
…atalog

The four tools this suite added, and their default templates, now load only for this suite. Sentinel responses stay in the shared mock renderer.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cromeroLD
cromeroLD enabled auto-merge (squash) October 30, 2026 19:31
@github-actions

Copy link
Copy Markdown

Skill eval results

Skill Before After Δ
agentcontrol/configs-create 100/100 (4/4) 100/100 (4/4) no change
agentcontrol/configs-update 80/100 (4/5) 80/100 (4/5) no change
agentcontrol/configs-variations 80/100 (4/5) 80/100 (4/5) no change
agentcontrol/tools 75/100 (3/4) 75/100 (3/4) no change
aws-devops-agent/experiment-orchestration - 89/100 (8/9) new
experiments/launchdarkly-experiment-guide - 100/100 (5/5) new
experiments/launchdarkly-experiment-setup - 100/100 (8/8) new
feature-flags/flag-and-release-change - 100/100 (4/4) new
feature-flags/flag-release - 100/100 (5/5) new
feature-flags/launchdarkly-flag-command - 100/100 (3/3) new
feature-flags/launchdarkly-flag-create 100/100 (3/3) 100/100 (4/4) no change
feature-flags/launchdarkly-flag-drift - 100/100 (4/4) new
feature-flags/should-flag-change - 100/100 (17/17) new
onboarding - 86/100 (6/7) new

Only suites whose source actually changed since their last recorded score were re-run. Soft-failing while we stabilise the baseline.

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.

1 participant