← ClaudeAtlas

prlisted

Creates or updates GitHub pull requests and GitLab merge requests with the matching CLI. Use when the agent needs to push a branch, open a review request, or write PR or MR text. Always use this skill when the user asks to open a PR, create a pull request, push and open a PR, create a merge request, update PR text, write a PR description, or anything involving pull requests or merge requests. Trigger for phrases like "open a PR", "create a pull request", "push and open a PR", "merge request", "MR on gitlab", "update the PR", or "write PR description".
skrrt-sh/skills · ★ 2 · Code & Development · score 78
Install: claude install-skill skrrt-sh/skills
# Git PR Skill Push a branch and open or update a review request with the forge's own CLI — `gh` for GitHub, `glab` for GitLab. Never cross them. ## Workflow 1. **Branch guard** — run `git branch --show-current` and read the `<!-- skrrt:branching -->` block from `CLAUDE.md`, `AGENTS.md`, `.claude/CLAUDE.md`, or `.github/AGENTS.md` (first match). No block found → tell the user to run `/setup` and stop. Never push a PR from a protected branch; if the branch is wrong, branch off the base the strategy dictates — `main` under GitHub Flow and Trunk-Based, `develop` for Gitflow feature work — after `git fetch origin` and a fast-forward pull of that base. 2. **Detect the forge:** ```bash bash "${CLAUDE_SKILL_DIR}/scripts/detect-forge-cli.sh" ``` It prints `REMOTE_HOST`, `FORGE`, `MATCHED_CLI`, and `STATUS`. Continue only on `STATUS=ok`; otherwise stop and report exactly what is missing. 3. **Check for a precedent PR** if this is a follow-up (see below). 4. Push with `git push -u origin HEAD`, summarize the diff, then create or update the review request non-interactively with `--base` / `--target-branch` set to the strategy's target. Target branch by strategy: **GitHub Flow / Trunk-Based** — always `main`, rebasing onto it first (`git pull --rebase origin main`) and squash merging. **Gitflow** — feature branches target `develop`, never `main` (warn if the user asks otherwise); `release/*` and `hotfix/*` target `main`, and after they merge remind