--- name: open-pr description: > Open a DRAFT pull request from the current branch so GitHub Actions do not run yet. Body from the plan file, review notes and exercise-paths output — never from memory. Undrafts (`--ready`) and merges only on an explicit ask, each a separate yes. argument-hint: "[--ready] [--stack-on=]" --- # open-pr Draft by default. Actions bill minutes; the local gate already ran; CI should run once, when you undraft. `--ready` only when the user explicitly wants Actions now. ⚠️ Draft only saves Actions where the repo's PR workflows carry the `draft == false` guard (`dev:ci-local` / `dev:gha-cost` prescribe it). **golf has no such guard today** — a draft PR creates the Neon branch and an EAS preview immediately (see golf's `ci-gate` skill). Until the guard lands, say so when opening the PR rather than implying nothing ran. ## Context ```bash git log origin/main..HEAD --oneline git diff origin/main...HEAD --stat ``` Read the plan file: notes, `## Deviations`, `## Review notes`, `## Gate`. Reconstructing them from the diff loses the reasoning. ## Body ``` ## Summary ## Plan docs/planning//-plan.md · deviations: ## Review · findings, addressed · declined: Sole reviewer — no automated or human review on this PR. ## How it was verified ## Docs ## Linear GOLF-123 ``` If `exercise-paths` hasn't run, say so in that section — not "tested locally". ## Create ```bash gh pr create --draft --assignee @me --title "GOLF-123 — " --body "$(cat <<'BODY' ... BODY )" ``` Title: `` or `: ` for one-offs. Linear → **In Review** (match by status name). Don't post a PR-link comment on Linear — GitHub integration already links from the branch. Stacked: `--base ` and say so in the first line. Record the PR number in the plan file's `links:`. ## Undraft and merge — each on its own explicit yes Gate first (plan file `## Gate`: local gate · review · qa · docs). Any box unticked → name it and the command that clears it; stop. Then, on ask: ```bash gh pr ready # Actions run now — the only time for this branch gh pr checks --watch # red: read it; flaky → re-run once; real → back to implement gh pr merge --squash --delete-branch # second explicit yes; check the target — golf promotes qa → stage → main ``` After: Linear → Done by status name · distill-on-ship if a planning project closed (`dev:docs`) · `use-worktree prune` · `close-out` if the loop deviated.