with one click
gh-pr-opener
// Open Robot SF PRs with MCP-first GitHub interaction, explicit issue-scope verification, and a conservative PR-readiness freshness gate.
// Open Robot SF PRs with MCP-first GitHub interaction, explicit issue-scope verification, and a conservative PR-readiness freshness gate.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | gh-pr-opener |
| description | Open Robot SF PRs with MCP-first GitHub interaction, explicit issue-scope verification, and a conservative PR-readiness freshness gate. |
Use this skill when a branch is ready to be handed off as a GitHub PR and the repository wants a standard, conservative opening flow.
Prefer GitHub MCP / GitHub app tools for interactive issue and PR inspection when available.
Keep the concrete gh commands below as the deterministic fallback for PR creation, readiness
verification, and metadata operations that still need CLI scripting.
This skill is fail-closed by design:
.github/PULL_REQUEST_TEMPLATE/pr_default.md as the PR body base.A prior readiness run counts as fresh only when all of the following are true:
status == "passed",head_sha matches git rev-parse HEAD,base_ref matches the intended PR base (default origin/main),Canonical helper:
uv run python scripts/dev/pr_ready_freshness.py status --base-ref origin/mainIf freshness cannot be proven, rerun:
BASE_REF=origin/main scripts/dev/pr_ready_check.shAfter a successful rerun, record freshness evidence:
uv run python scripts/dev/pr_ready_freshness.py write --base-ref origin/mainConfirm branch + issue context
git branch --show-currentgh issue view <n> --json number,title,body,url,stateVerify the issue scope is actually implemented
git diff origin/main...HEAD --stat and targeted file diffs.Sync with latest main before opening the PR
git fetch origin mainorigin/main into the feature branch before PR creation.Check local artifact persistence before handoff
git status --ignored --short -uall outputfind output ...,
du -sh, and sha256sum.output/ artifact as one of:
docs/context/evidence/,output/model_cache as durable-candidate artifacts.summary.json files, Markdown
reports, small CSV/JSON tables, and checksums. Do not commit raw episode JSONL, videos, large
Slurm logs, coverage HTML, model caches, or checkpoints unless they are deliberately small
regression fixtures.model/registry.yaml with W&B metadata
such as wandb_artifact_path, or another explicit durable artifact reference.docs/context/ note.Verify readiness freshness after the sync
uv run python scripts/dev/pr_ready_freshness.py status --base-ref origin/mainBASE_REF=origin/main scripts/dev/pr_ready_check.shuv run python scripts/dev/pr_ready_freshness.py write --base-ref origin/mainBuild the PR body from the repository template
.github/PULL_REQUEST_TEMPLATE/pr_default.md.Closes #<n> when appropriate),output/ files,Open the draft PR
gh pr create --draft --base main --head <branch> --title "<type>: <summary> (#<n>)" --body-file <prepared_body.md>feat:, fix:, or docs:.Close the loop
origin/main integrated into the feature branch before PR creation.output/ artifacts inspected, classified, and either made durable or
documented as disposable/local-only.pr_ready_freshness.py status, orBASE_REF=origin/main scripts/dev/pr_ready_check.sh run plus a new stamp..github/PULL_REQUEST_TEMPLATE/pr_default.md.output/validation/pr_ready/; this keeps the
rule explicit and reproducible without changing scripts/dev/pr_ready_check.sh.