# Run Tests

Run the tests, run one spec, run e2e locally or on Daytona, investigate a skipped spec.

- Repository: https://github.com/different-ai/openwork (24362 stars)
- Category: Testing
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add different-ai/openwork --skill run-tests -g -a claude-code -y`
Codex: `npx skills add different-ai/openwork --skill run-tests -g -a codex -y`
Cursor: `npx skills add different-ai/openwork --skill run-tests -g -a cursor -y`
Gemini CLI: `npx skills add different-ai/openwork --skill run-tests -g -a gemini-cli -y`

## Description

Run the tests, run one spec, run e2e locally or on Daytona, investigate a skipped spec. Use for executing @openwork/testkit agent-first verification.

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

# Skill: Run Tests

## Run the landable tree

- Check out the exact PR head that will land. After any rebase or cherry-pick,
  discard the old verdict and run again.
- Run one test at a time so each failure and ambient test evidence has one owner.

## Choose the execution environment

```bash
pnpm evals:e2e <slug>
```

The CLI prints the placement and reason; copy that line into the report. Use
`--local` only when the user asks for local. `--daytona` requires Daytona. Never
switch lanes to turn a red Daytona run green.

Know what each placement runs before reading a verdict:

- Daytona (the default when the `daytona` CLI is logged in) builds
  `OPENWORK_EVAL_REF`, which defaults to `dev`, not your working tree. To test a
  branch, push it and export `OPENWORK_EVAL_REF=$(git rev-parse HEAD)`; add
  `--strict-ref` so a mismatch fails instead of warning.
- `--local` runs your working tree. A spec whose world uses `appWeb` stays in
  headless Chrome. A spec whose world uses `desktop` (`seed.desktop`, `app()`)
  opens an Electron window that takes focus on this computer; run those on
  Daytona unless the user asks for a local window.

## Run the core journey

The test every PR runs. Its world is a Freestyle VM, so this needs only the
evals install and the Freestyle key:

```bash
FREESTYLE_API_KEY="$(infisical secrets get FREESTYLE_API_KEY --env dev --path /openwork-ops --plain --silent)" \
  node evals/bin/evals.mjs core/core-chat.e2e.test.ts --local --engine v1 --surface web
```

It runs against the pushed `HEAD` commit; push first. After changing the world
itself, run `node evals/scripts/check-freestyle-world.ts --base <sha>` instead.

## Prepare local fallback

```bash
pnpm --filter @openwork/types build
pnpm --filter @openwork-ee/den-db build
pnpm --filter @openwork/email build
pnpm dev:den:mysql
```

The rest: https://github.com/different-ai/openwork/blob/HEAD/.opencode/skills/run-tests/SKILL.md
