Agent Skills › different-ai/openwork › verify-openwork

verify-openwork

GitHub

验证 OpenWork 代码变更在真实产品中是否生效。通过启动开发环境,模拟用户操作驱动核心旅程,截图并证明变更前失败、变更后成功,作为 PR 提交的最终验收证据。

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

Trigger Scenarios

提交 PR 前需要证明功能正常 审查者要求展示实际运行效果 核心业务流程测试失败时

Install

npx skills add different-ai/openwork --skill verify-openwork -g -y
More Options

Non-standard path

npx skills add https://github.com/different-ai/openwork/tree/dev/.opencode/skills/verify-openwork -g -y

Use without installing

npx skills use different-ai/openwork@verify-openwork

指定 Agent (Claude Code)

npx skills add different-ai/openwork --skill verify-openwork -a claude-code -g -y

安装 repo 全部 skill

npx skills add different-ai/openwork --all -g -y

预览 repo 内 skill

npx skills add different-ai/openwork --list

SKILL.md

Frontmatter
{
    "name": "verify-openwork",
    "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."
}

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

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)

Journey What it proves Run
org-invite-join an owner invites someone and they join with the right role pnpm evals:e2e org-invite-join --local
core-chat a signed-in person sends a message and reads the reply pnpm evals:e2e core-chat --local
thread-continues-after-restart a conversation, queued follow-up and draft survive a restart desktop; pnpm evals:e2e thread-continues-after-restart --local
agent-connection-journey a connector call in chat shows what was called and what came back pnpm evals:e2e agent-connection-journey --local
agent-permissions blocked commands stay blocked; allowed ones run pnpm evals:e2e agent-permissions --local
app-smoke the packaged desktop app opens to a working screen packaged smoke (apps/desktop/scripts/packaged-smoke.mjs)
packaged-update-install an installed app downloads and installs a newer build macOS packaged smoke
agent-signup-via-mcp an MCP client connects, searches capabilities and runs one pnpm evals:e2e agent-signup-via-mcp --local
secure-keys-in-chat keys stay out of the transcript, model, logs and other members' calls pnpm evals:e2e secure-keys-in-chat --local

Version History

  • b73f6c6 Current 2026-10-19 21:57

Same Skill Collection

.opencode/skills/add-a-feature/SKILL.md
.opencode/skills/agent-first-screenshots/SKILL.md
.opencode/skills/browser-automation/SKILL.md
.opencode/skills/build-a-witness/SKILL.md
.opencode/skills/cloud-dashboard-walkthrough/SKILL.md
.opencode/skills/create-plugin/SKILL.md
.opencode/skills/daytona-chrome-cdp/SKILL.md
.opencode/skills/daytona-cloud-instance/SKILL.md
.opencode/skills/daytona-cloud-server/SKILL.md
.opencode/skills/daytona-dev/SKILL.md
.opencode/skills/daytona-electron-den/SKILL.md
.opencode/skills/daytona-electron-test/SKILL.md
.opencode/skills/daytona-flow-validator/SKILL.md
.opencode/skills/daytona-recording-artifacts/SKILL.md
.opencode/skills/daytona-secrets-volume/SKILL.md
.opencode/skills/daytona-seeded-cloud-demo/SKILL.md
.opencode/skills/daytona-windows-cert/SKILL.md
.opencode/skills/daytona/SKILL.md
.opencode/skills/diagnose-a-red-run/SKILL.md
.opencode/skills/drive-desktop-cdp/SKILL.md
.opencode/skills/fake-model-faults/SKILL.md
.opencode/skills/fix-design-notes/SKILL.md
.opencode/skills/fraimz/SKILL.md
.opencode/skills/get-env-var/SKILL.md
.opencode/skills/hunt-a-prod-error/SKILL.md
.opencode/skills/measure-chat-flicker/SKILL.md
.opencode/skills/open-a-pr/SKILL.md
.opencode/skills/openwork-models/SKILL.md
.opencode/skills/preview-my-work/SKILL.md
.opencode/skills/product-tutorial-pipeline/SKILL.md
.opencode/skills/prove-a-pr/SKILL.md
.opencode/skills/publish-evidence/SKILL.md
.opencode/skills/record-a-demo/SKILL.md
.opencode/skills/release/SKILL.md
.opencode/skills/reproduce-chat-states/SKILL.md
.opencode/skills/review-a-contributor-pr/SKILL.md
.opencode/skills/run-evals/SKILL.md
.opencode/skills/run-tests/SKILL.md
.opencode/skills/shadcn/SKILL.md
.opencode/skills/upload-photo/SKILL.md
.opencode/skills/validate-a-release/SKILL.md
.opencode/skills/write-a-spec/SKILL.md
.warden/skills/confidentiality-review/SKILL.md
.warden/skills/contributor-screen/SKILL.md
.warden/skills/design-spec-review/SKILL.md
.warden/skills/desktop-den-sync-review/SKILL.md
.warden/skills/diff-security-review/SKILL.md
.warden/skills/spec-provenance-review/SKILL.md
integrations/agent-plugins/openwork-connect/skills/openwork-connect/SKILL.md

Metadata

Files
0
Version
b73f6c6
Hash
779e3c6f
Indexed
2026-10-19 21:57

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-24 15:09
浙ICP备14020137号-1