Skip to main content

run-evals

Run OpenWork UI evals on a Daytona sandbox or local Electron instance. Handles sandbox creation, service startup, and eval execution via CDP browser tools.

Source facts

Repository
jasonkneen/openwork
Last source activity
May 13, 2026 at 22:26
Detected SKILL.md language
English
Stars
2
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
run-evals
description
Run OpenWork UI evals on a Daytona sandbox or local Electron instance. Handles sandbox creation, service startup, and eval execution via CDP browser tools.
# Skill: Run Evals Run the OpenWork UI evaluation flows against a real Electron app — either on a Daytona cloud sandbox or a local instance. ## When to use - User says "run evals on Daytona" or "run this flow on Daytona" - User wants to verify a UI change end-to-end - User wants to test the onboarding, session, or settings flows ## Prerequisites - `daytona` CLI installed and logged in (`daytona login`) - Using the "Different AI" org (`daytona organization use "Different AI"`) - The `.devcontainer/` files exist in the repo ## Workflow ### Step 1: Create sandbox (if not running) Check for existing sandbox first: ```bash daytona list ``` If no `openwork-test` sandbox, create one: ```bash daytona create \ --name openwork-test \ --dockerfile .devcontainer/Dockerfile \ --context .devcontainer/Dockerfile \ --context .devcontainer/start-display.sh \ --context .devcontainer/start-services.sh \ --class large \ --memory 8 \ --auto-stop 60 \ --public \ --target us ``` ### Step 2: Start services ```bash daytona exec openwork-test 'bash /workspace/.devcontainer/start-services.sh' ``` Wait for it to start (this runs in background, may timeout — that's OK). ### Step 3: Verify ```bash # Get CDP URL daytona preview-url openwork-test -p 9825 ``` Then use the browser tools to verify: ``` browser_list({ browser_url: "<CDP_URL>" }) → should show "OpenWork" page target ``` ### Step 4: Create a workspace (if on welcome page) If the app shows the Welcome page, create a workspace: 1. Create directory on sandbox: ```bash daytona exec openwork-test 'mkdir -p /workspace/hello' ``` 2. Follow the workspace creation flow from `evals/daytona-flows.md` Flow 1: - Click "Get started" → "Local workspace" - Inject path via React fiber dispatch: `{ key: "selectedFolder", value: "/workspace/hello" }` - Click "Create Workspace" - Wait 10s for opencode sidecar to boot ### Step 5: Run the requested eval Read the eval file from `evals/` and execute each step using the browser tools. For each step: 1. Execute the `browser_evaluate` / `browser_click` / `browser_screenshot` call 2. Verify the expected outcome 3. Report pass/fail ### Key techniques **Clicking buttons:** ``` browser_evaluate({ browser_url: URL, expression: "(function() { var btns = document.querySelectorAll('button'); for (var i = 0; i < btns.length; i++) { if (btns[i].textContent.indexOf('BUTTON_TEXT') !== -1) { btns[i].click(); return 'clicked'; } } return 'not found'; })()" }) ``` **Typing in Lexical editors:** ``` browser_evaluate({ browser_url: URL, expression: "(function() { var e = document.querySelector('[contenteditable=true]'); e.focus(); document.execCommand('insertText', false, 'YOUR TEXT'); return 'typed'; })()" }) ``` **Injecting folder path (bypass native picker):** Use the `__reactFiber$` → `CreateWorkspaceModal` reducer dispatch with `{ key: "selectedFolder", value: "/path" }`. Full code in `evals/daytona-flows.md` Flow 1 Step 5. **Checking page state:** ``` browser_evaluate({ browser_url: URL, expression: "document.body.innerText.substring(0, 500)" }) ``` **Screenshots:** ``` browser_screenshot({ browser_url: URL }) ``` ### Teardown ```bash daytona stop openwork-test # preserves state for re-runs daytona delete openwork-test # full cleanup ```
View on GitHub