# Run Evals

Do e2e tests, run e2e, validate feature, prove it works, PR proof, frame proof, pnpm...

- Repository: https://github.com/Devin-AXIS/iPolloWork (7348 stars)
- Category: Testing
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add Devin-AXIS/iPolloWork --skill run-evals -g -a claude-code -y`
Codex: `npx skills add Devin-AXIS/iPolloWork --skill run-evals -g -a codex -y`
Cursor: `npx skills add Devin-AXIS/iPolloWork --skill run-evals -g -a cursor -y`
Gemini CLI: `npx skills add Devin-AXIS/iPolloWork --skill run-evals -g -a gemini-cli -y`

## Description

do e2e tests, run e2e, validate feature, prove it works, PR proof, frame proof, pnpm evals. Launches iPolloWork on Daytona or local Electron and runs the coded eval flows via CDP. Launch + run mechanics; the proof loop itself is the fraimz skill.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Skill: Run Evals

Launch a real iPolloWork app and run coded eval flows against it. This skill owns
**launch + run**; the prove/repair/verdict loop and evidence standard live in
the **`fraimz` skill**, load that too for anything that ends in a verdict.

## Prerequisites

- `daytona` CLI installed and logged in (`daytona login`), right org selected
  (`daytona organization use "<org-name>"`)
- `.devcontainer/` files present in the repo
- Optional provider coverage: reusable secrets volume populated once with
  `bash .devcontainer/setup-daytona-secrets-volume.sh .newtoken` (never print
  keys; sandboxes source every `/daytona-secrets/*.env` before Electron starts)

## Preferred path: Daytona sandbox

```bash
daytona organization use "<org-name>"
bash .devcontainer/test-on-daytona.sh <branch-or-commit> --artifacts-volume
```

The helper creates a fresh VNC-capable sandbox from the `ipollowork-eval-vnc`
snapshot, mounts the secrets + pnpm-store volumes, starts XFCE/noVNC, Vite, and
Electron with Daytona-safe flags, waits for CDP, then prints the CDP and noVNC
URLs. `--artifacts-volume` mounts `/daytona-artifacts` served on port 8090 for
published frame proof. Refresh the snapshot when dependencies change:
`bash .devcontainer/create-daytona-ipollowork-snapshot.sh`.

Verify the endpoint before running flows:

```bash
curl -fsS "<CDP_URL>/json/list"   # must include an iPolloWork page target
```

If it fails, inspect `/tmp/electron.log`, the real success marker is
Chromium's `DevTools listening on ws://127.0.0.1:9825/...`.

If the app shows the Welcome page, use a coded onboarding flow or create
`/workspace/hello` through the visible UI before running a workspace-dependent
flow.

## Run the flows

```bash
pnpm evals --list
pnpm evals --flow <flow-id> --cdp-url <printed-electron-cdp-url>
pnpm evals --all --stack den     # brings up MySQL + den-api + seed for cloud flows
```

The rest: https://github.com/Devin-AXIS/iPolloWork/blob/HEAD/.opencode/skills/run-evals/SKILL.md
