Skip to main content
ClaudeWave
ES, Spanish
Skill7.2k estrellas del repoactualizado 6d ago

run-evals

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.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/Devin-AXIS/iPolloWork /tmp/run-evals && cp -r /tmp/run-evals/.opencode/skills/run-evals ~/.claude/skills/run-evals
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# 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 runner produces machine-checkable assertions, validated screenshots, and
writes `fraimz.html` + `report.md` / `report.json` under
`evals/results/<run-id>/`. If no coded flow exists for the behavior, add one in
`evals/flows/<id>.flow.mjs` (see the `fraimz` skill and `evals/README.md` for
the `ctx.*` API); use manual browser tools only to debug or prototype — a coded
flow is the PR evidence.

## Recording (motion only)

Frame proof is the default deliverable; record video only when motion matters
(streaming, animations). Start with
`bash .devcontainer/test-on-daytona.sh <branch> --record-video --recording-name <name>`,
stop with `daytona exec "$SANDBOX" -- 'bash .devcontainer/stop-daytona-recording.sh'`,
download via the port-8090 artifacts URL. Details: `daytona-recording-artifacts`.

## Local fallback

When Daytona is down or quota-limited:

```bash
pnpm install
pnpm --filter @ipollowork/app typecheck
IPOLLOWORK_ELECTRON_REMOTE_DEBUG_PORT=9826 pnpm dev   # then:
pnpm evals --flow <flow-id> --cdp-url http://127.0.0.1:9826
```

Report clearly whether the result came from Daytona or the local fallback — a
local run is not a Daytona validation.

## Teardown

```bash
daytona delete "$SANDBOX"
```
acme-researchSkill

Search and summarize material from the Acme research service.

agent-first-screenshotsSkill

Agent-first screenshots — an agent drives the real app via CDP and produces clean, defect-free product screenshots (newsletters, landing pages, social, decks, PR). Dual-channel verification (DOM + pixels + vision) in a capture loop. Use for any "take/redo screenshots of the app" task.

context7-docs-researchSkill

Resolve the correct library and retrieve a small, relevant set of version-aware official documentation before answering a technical question.

context7-version-aware-implementationSkill

Use the current project dependency versions and Context7 documentation to implement or upgrade code without importing APIs from a different release line.

create-pluginSkill

Create an OpenCode plugin for iPolloWork. Scaffolds the plugin file with the correct API shape, tool definitions, and hook registration. Use when the user asks to 'create a plugin', 'write a plugin', or 'make a plugin that does X'.

daytona-chrome-cdpSkill

Launch and control standalone Chrome in a Daytona sandbox via CDP. Use for web sign-in, OAuth, Den Web setup, browser-only flows, or when the app should not be driven through Electron CDP.

daytona-cloud-serverSkill

Daytona cloud server, Den sandbox, desktop plus cloud e2e, marketplace server, worker proxy, cloud auth, org policies, connect Electron to Den. Use for server-side setup in validated flows.

daytona-devSkill

Daytona development environment overview. Use when the user asks about Daytona setup, Daytona toolbox, dev environment, noVNC, CDP, server sandbox, secrets volume, Electron sandbox, standalone Chrome, validation, or artifacts volume.