# Open Pr

> Opens a pull request from the current branch using the PR template. Use when the user asks to open a PR, create a pull request, or invokes /open-pr.

- Skill: `gabrielmoreira/open-pr-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add gabrielmoreira/open-pr-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gabrielmoreira/open-pr-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: gabrielmoreira (https://skillmd.com/u/gabrielmoreira)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/gabrielmoreira/open-pr-2

---


# Open Pull Request

Opens a draft PR from the current branch following Storybook conventions.

## Workflow

### 1. Gather context

Run in parallel: `git status`, `git diff`, `git log --oneline <base>...HEAD` (after step 2), `git branch -vv`.

Push first if needed: `git push -u origin HEAD`.

### 2. Detect base branch

```bash
git fetch origin
bash .agents/skills/open-pr/scripts/detect-base-branch.sh
```

Detects base in order: tracked upstream → reflog checkout source → closest `origin/*` ancestor (fewest commits from branch tip to HEAD). Supports telescoped/stacked PRs off feature branches, not only `next`/`main`. Skips branches at the same commit as HEAD. Tie-break: feature branch over trunk, then `next` over `main`. Falls back to `next`. Tell the user the result.

### 3. Ask for labels

Use **AskQuestion** for three questions. Options from `.github/PULL_REQUEST_TEMPLATE.md`:

| Question   | Options                                                                                                                  |
| ---------- | ------------------------------------------------------------------------------------------------------------------------ |
| CI label   | `ci:normal`, `ci:merged`, `ci:daily`                                                                                     |
| QA label   | `qa:needed`, `qa:skip`                                                                                                   |
| Type label | `bug`, `maintenance`, `dependencies`, `build`, `cleanup`, `documentation`, `feature request`, `BREAKING CHANGE`, `other` |

Verify the available labels with the PR template.

### 4. Draft title and body

**Title:** `[Area]: [Description]` — see the `pr` skill for format and examples.

**Body:** Read `.github/PULL_REQUEST_TEMPLATE.md`. Copy it **exactly** (keep all HTML comments). Fill in:

- `Closes #` when an issue is linked
- **What I did**
- Testing checkboxes and mandatory manual-testing steps (or state why none is needed)
- Documentation checkboxes when applicable
- Leave maintainer checklist items unchecked

### 5. Create the PR

```bash
gh pr create \
  --draft \
  --base "<detected-base>" \
  --title "<Area>: <Description>" \
  --body "$(cat <<'EOF'
<FILLED_TEMPLATE>
EOF
)" \
  --assignee @me \
  --label "<type>,<ci>,<qa>"
```

### 6. Report and offer canary

Share the PR URL. Then **AskQuestion**: "Do you want to create a canary release for this PR?"

- **Yes** — follow the `canary` skill
- **No** — stop

## Notes

- Always draft; always assign `@me`.
- For canary details after publishing, see the `canary` skill.

