Agent Skillsdifferent-ai/openwork › prove-a-pr

prove-a-pr

GitHub

验证PR代码树完整性,执行测试并生成通过/失败结论。支持堆叠PR处理、Daytona优先验证及本地回退,发布测试证据以辅助合并决策。

.opencode/skills/prove-a-pr/SKILL.md different-ai/openwork

Trigger Scenarios

需要验证PR是否可合并 声明PR状态为Passed, Incomplete或Failed 检查堆叠PR的依赖关系

Install

npx skills add different-ai/openwork --skill prove-a-pr -g -y
More Options

Non-standard path

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

Use without installing

npx skills use different-ai/openwork@prove-a-pr

指定 Agent (Claude Code)

npx skills add different-ai/openwork --skill prove-a-pr -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": "prove-a-pr",
    "description": "Prove a PR, prepare merge verification, publish all evidence, check a stacked PR. Use when declaring a PR Passed, Incomplete, or Failed."
}

Skill: Prove a PR

Verify the tree that will land

  • Run every check on the PR head after its final rebase or cherry-pick. Re-run and re-publish after any history rewrite; test runs are bound to a commit SHA.
  • Before merging a stacked PR, inspect gh pr view <n> --json baseRefName,headRefName,headRefOid. If its base PR merged first, the stack can merge into the feature branch instead of dev; GitHub then recreates commits with new SHAs and orphans their test evidence.
  • Detect stray commits with git log --oneline <branch> ^origin/dev. Remedy a bad stack by cherry-picking only the intended commits onto current dev, then re-run every check and re-publish every test run.

Produce the agent-first verdict

  • Use write-a-spec and run-tests. Prose, screenshots, and recordings never decide pass/fail.
  • Prefer Daytona for agent-first verification. Attempt the Daytona lane first when its credentials and service access are available; otherwise run the same checks locally. Missing Daytona credentials, tooling, or service access is an expected OSS contributor fallback, not a failed check.
  • Determine fallback eligibility before execution: use local only when Daytona credentials, tooling, or service access are unavailable, or when the user explicitly requires local.
  • Once Daytona is available and selected, a runtime, test, or product failure does not make Daytona unavailable. Diagnose and repair any red or incomplete Daytona run in Daytona; never switch lanes to turn the verdict green.
  • A local reproduction may aid diagnosis, but it is not fallback and cannot replace the required Daytona verdict.
  • Record whether each check ran on Daytona or locally. When falling back, state the unavailable Daytona prerequisite without exposing secret values.
  • Give every claim an observable assertion and visible test evidence.
  • Report only Passed, Incomplete, or Failed. Always quote exact commands, exit codes, and passed/failed/skipped counts.
  • Call a failure pre-existing only after the same command demonstrates it in a clean origin/dev worktree. Quote the control command and matching failure.

Satisfy local fallback prerequisites

pnpm --filter @openwork/types build
pnpm --filter @openwork-ee/den-db build
pnpm --filter @openwork/email build
pnpm dev:den:mysql
  • Local server() requires MySQL at 127.0.0.1:3306; unbuilt workspace dependencies can make den-api imports fail.
  • If the checkout path contains spaces, set OPENWORK_EVAL_SURFACES_DIR to a space-free path; node-gyp and electron-rebuild otherwise fail.
  • Set OPENWORK_EVAL_E2E_TESTS=1 for app-driving E2E tests.

Publish human verification

  • The orchestrator owns publishing after the verdict. After a multi-test run, publish each head-matching test run:
pnpm evals:e2e --publish --pr <n> --test-run <dir|name>
  • Confirm the sticky PR comment shows one section for every claimed test.
  • Never use --force to paper over a SHA mismatch; re-run on the PR head. Reserve it for deliberately publishing historical or red test evidence, and call that exception out in the report and PR comment.

Version History

  • ff5d298 Current 2026-08-20 11:35

Same Skill Collection

.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/diagnose-a-red-run/SKILL.md
.opencode/skills/fraimz/SKILL.md
.opencode/skills/get-env-var/SKILL.md
.opencode/skills/openwork-models/SKILL.md
.opencode/skills/product-tutorial-pipeline/SKILL.md
.opencode/skills/publish-evidence/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/write-a-spec/SKILL.md
.warden/skills/desktop-den-sync-review/SKILL.md
.warden/skills/diff-security-review/SKILL.md

Metadata

Files
0
Version
757601b
Hash
d6db0296
Indexed
2026-08-20 11:35

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-17 05:32
浙ICP备14020137号-1