Skip to content
cccskills
FreePublished on GitHub

ai-evals

Create and run black-box benchmarks for Windmill AI generation modes such as flows, apps, scripts, CLI, and global requests. Each case exercises the production path, checks hard requirements, and uses an LLM judge to assess user-facing behavior before and after changes.

OriginalShow the original description

Author and run black-box benchmark cases for the Windmill AI generation modes (flow/app/script/cli/global) in ai_evals/. Use when adding or changing eval cases, or when running before/after benchmarks for AI chat / copilot changes.

windmill-labs/windmill18,276 stars(GitHub 18,276 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Adding a benchmark case for an AI mode
  • Comparing AI chat behavior before and after a change
  • Checking copilot changes with realistic requests

Files included (1)

  • SKILL.md3.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

AI evals — authoring and running benchmark cases

ai_evals/ is a black-box benchmark runner for the Windmill AI generation modes: flow, app, script, cli, global. It always tests the current production prompts, tools, and guidance in this checkout. Each attempt runs the real production path, deterministic validation, then LLM judging.

The goal is to test current production guidance with realistic user requests — not to pin one exact implementation shape.

Running benchmarks

cd ai_evals
bun install                       # first time; frontend modes also need `cd frontend && bun install`
bun run cli -- models             # list model aliases
bun run cli -- cases global       # list cases for a mode
bun run cli -- run global global-test1-script-create --model sonnet

Frontend modes (flow/script/app/global) route model calls through a Windmill backend's /api/w/<ws>/ai/proxy, so you need any reachable backend:

WMILL_AI_EVAL_BACKEND_URL=http://127.0.0.1:<port> WMILL_AI_EVAL_BACKEND_WORKSPACE=integration-tests \
  bun run cli -- run global <caseIds...> --models sonnet,gpt-5.5,gemini-3.1-pro-preview
  • Reuse an existing workspace. CE builds cap workspaces, so temp-workspace creation 400s ("reached workspace limit"). Always set WMILL_AI_EVAL_BACKEND_WORKSPACE=integration-tests (or any existing workspace) to reuse one. The only side effect of a run is upserting an f/evals/ai/<provider> resource there.
  • Provider keys live in ai_evals/.env and are auto-loaded by bun. The judge is a separate Anthropic call (default claude-sonnet-4-6) regardless of the model under test.

Authoring core rules

  1. Write prompts like a real user request.
  2. Prefer behavior, inputs, constraints, and outcomes over internal implementation.
  3. Keep deterministic validation narrow and hard.
  4. Put semantic expectations in judgeChecklist.
  5. Use expected fixtures only when exact structure really matters.

Prompt writing

Prompts should sound like something a user would naturally ask. Do not write prompts as if the user knows Windmill internals unless the case explicitly tests a power-user workflow.

Good:

  • "Create a flow that routes support requests based on customer tier."
  • "Add a reset button that sets the counter back to 0."
  • "Create a flow that reuses the existing greeting script instead of duplicating the logic."

Bad:

  • "Use branchone with 3 branches and a default branch."
  • "Create a rawscript step with this exact topology."
  • "This is a benchmark harness."

Deterministic validation

Use deterministic checks only for hard failures: missing required files; unexpected extra files when the prompt says not to create them; syntax errors; unresolved flow refs; missing required special modules or suspend config; obvious corruption.

Do not encode one preferred implementation. Bad hard checks: exact step topology for a creation flow; exact branch structure when the prompt only asked for routing; exact input shape when multiple reasonable shapes are acceptable.

Judge checklist

Every non-trivial case should have a judgeChecklist capturing user-visible behavior that must be present, important constraints, and key completion criteria — not low-level implementation details unless truly required.

Good: "the flow calculates the order total with 8% tax"; "the flow reuses the existing workspace script instead of rewriting the logic". Bad: "uses branchone"; "contains a rawscript node".

See ai_evals/README.md for the full case format, fields, and fixture details.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

adding-a-trigger

FreeSummary

Plan the code changes needed to add a TriggerCrud-based trigger to Windmill. The checklist covers backend, database, API, CLI, frontend, capture, and validation work so the new trigger can be managed across the product.

  • Add a Kafka, GCP, or Azure style trigger to Windmill
  • Find all product areas affected by a new trigger kind
  • Review implementation and validation steps before a trigger PR
windmill-labs/windmill18.3KUpdated Oct 26, 2026

ai-chat

FreeSummary

Improve Windmill’s AI chat by reviewing its tools, prompts, result shapes, and context usage. The guidance helps place shared instructions where chat and CLI can use them, reduce repeated token costs, and compare behavior before and after changes with A/B evaluations.

  • Edit Windmill chat tools or system prompts
  • Reduce chat context window usage
  • Benchmark a chat behavior change
windmill-labs/windmill18.3KUpdated Oct 26, 2026

cli-commands

FreeSummary

Use this reference to work with Windmill resources from the command line, including scripts, flows, datatables, and workspace settings. It also covers listing jobs, inspecting details and logs, retrieving results, and rerunning or restarting executions when investigating failures.

  • Inspecting a failed job and its logs
  • Reviewing recent runs and retrieving job results
  • Managing scripts and flows from the command line
windmill-labs/windmill18.3KUpdated Oct 26, 2026

codebase-design

FreeSummary

Use this skill to shape modules with small interfaces and substantial behavior behind them. It helps you decide where a seam belongs, reduce complexity exposed to callers, and make code easier to test and maintain.

  • Designing a module interface
  • Finding places to simplify a module
  • Choosing where behavior should vary
windmill-labs/windmill18.3KUpdated Oct 26, 2026

commit

FreeSummary

Use this skill to review pending changes, select only the relevant files for staging, and create a focused Git commit. It formats the single-line message with a Conventional Commits type such as feat, fix, or docs, and checks the resulting status.

  • Committing a new feature
  • Recording a bug fix
  • Committing documentation changes
windmill-labs/windmill18.3KUpdated Oct 26, 2026

datatables

FreeSummary

Manage schema changes to Windmill data tables through versioned SQL migrations, including applying and rolling them back. The guide also explains role-based access, migration safety, and how changes affect workspaces, apps, and scripts.

  • Changing a data table schema safely
  • Writing or applying SQL migrations
  • Rolling back a recent migration
windmill-labs/windmill18.3KUpdated Oct 26, 2026

See all skills by windmill-labs

Report a problem with this skill