# Verify Openwork

Prove an OpenWork change works on the real product before calling it done.

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

## Install

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

## Description

Prove an OpenWork change works on the real product before calling it done. Start the product, drive the change the way a user or client would, capture screenshots, and show the proof fails on dev and passes on your branch. Use before opening a PR, when a reviewer asks "show me", or when a core journey is red.

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

# Verify OpenWork

A change is done when you have watched it work on the real product, not when it
compiles. The committed e2e suite is only the nine core journeys in
`evals/journeys.ts`; everything else is proved per PR and thrown away.

## 1. Pick the check

| The change is… | Prove it with |
| --- | --- |
| a server rule (permissions, isolation, validation, secrets) | an API test next to the code, e.g. `ee/apps/den-api/test/api/*.api.test.ts` (`pnpm --filter @openwork-ee/den-api test:api`) |
| a pure function or component logic | a colocated unit test |
| something a person or client does end to end | a proof: `evals/proofs/<name>.proof.test.ts` (`write-a-spec`) |
| one of the nine core journeys broke or changed | a step in that journey, `evals/core/<journey>.e2e.test.ts` |

## 2. Start the product

```bash
pnpm world up dev-app-web --detach -- --browser   # this checkout in headless Chrome; prints webUrl and cdp
pnpm world down dev-app-web                        # when done
```

Use a desktop window only for desktop-shell changes (see `drive-desktop-cdp`).
Den needs MySQL and Redis on localhost (`pnpm dev:den:mysql`, or a local MySQL
via `OPENWORK_EVAL_MYSQL_URL=mysql://root@127.0.0.1:3306`).

## 3. Drive it and keep the evidence

- By hand while working: `drive-desktop-cdp` (new session, send, wait, screenshot).
- As a proof: `pnpm evals:e2e <name> --local`; screenshots and the report land in
  `evals/results/test-runs/<latest>/`.

Drive the real user path. No internal setters, no test-only endpoints, no
reading app state; `pnpm --dir evals lint:specs` rejects those in proofs.

## 4. Show it fails without your change

A proof that passes on `dev` proves nothing about your change. Run it on both:

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