CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

verify-openwork

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.

Quality

95%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

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 logica colocated unit test
something a person or client does end to enda proof: evals/proofs/<name>.proof.test.ts (write-a-spec)
one of the nine core journeys broke or changeda step in that journey, evals/core/<journey>.e2e.test.ts

2. Start the product

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:

git worktree add /tmp/ow-base origin/dev
cp evals/proofs/<name>.proof.test.ts /tmp/ow-base/evals/proofs/
(cd /tmp/ow-base && pnpm install --frozen-lockfile && pnpm evals:e2e <name> --local)   # must fail
pnpm evals:e2e <name> --local                                                           # must pass
git worktree remove /tmp/ow-base

If it passes on dev, the assertion is looser than the change: tighten it.

5. Hand it over

Open the PR with open-a-pr. CI runs your proof and the nine core journeys on the PR head and posts the evidence. Name the proof and its before → after in the PR's Evidence section.

The nine core journeys (feature map)

JourneyWhat it provesRun
org-invite-joinan owner invites someone and they join with the right rolepnpm evals:e2e org-invite-join --local
core-chata signed-in person sends a message and reads the replypnpm evals:e2e core-chat --local
thread-continues-after-restarta conversation, queued follow-up and draft survive a restartdesktop; pnpm evals:e2e thread-continues-after-restart --local
agent-connection-journeya connector call in chat shows what was called and what came backpnpm evals:e2e agent-connection-journey --local
agent-permissionsblocked commands stay blocked; allowed ones runpnpm evals:e2e agent-permissions --local
app-smokethe packaged desktop app opens to a working screenpackaged smoke (apps/desktop/scripts/packaged-smoke.mjs)
packaged-update-installan installed app downloads and installs a newer buildmacOS packaged smoke
agent-signup-via-mcpan MCP client connects, searches capabilities and runs onepnpm evals:e2e agent-signup-via-mcp --local
secure-keys-in-chatkeys stay out of the transcript, model, logs and other members' callspnpm evals:e2e secure-keys-in-chat --local
Repository

different-ai/openwork

Path

.opencode/skills/verify-openwork/SKILL.md

Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.