pr
Use when you have follow-up changes to get onto a pull request, when updating a PR after main moved on, when a PR has conflicts with its base, or when you are…
Skill by miroo93
Chalk Labs
Need help deploying pr?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/miroo93-pr
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pr
What's inside
- Skill name
pr- Description
- Use when you have follow-up changes to get onto a pull request, when updating a PR after main moved on, when a PR has conflicts with its base, or when you are unsure whether to update the current PR or open a new one. Also use after a PR was merged and you have more changes.
- License
- MIT
- Instructions
- 132 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# pr
Get the current branch's work onto the right pull request — synced with the base, verified, and pushed — without you having to spell out the steps each time.
## Overview
**Core principle: the branch decides the PR, and the *live* PR status decides update-vs-new. Never trust session memory about a PR — re-check it every run.**
The recurring failure this prevents: an agent assumes "the PR from earlier this session" is still the active one and pushes follow-up work to it. But that PR may already be **merged** (follow-up work then needs a *new* PR), and the branch is usually **behind main** (the push needs a rebase first). `/pr` always queries the live PR status for the current branch, rebases onto the base, and routes accordingly.
## The contract (non-negotiable)
**`/pr` leaves the PR rebased-on-base, verified, and pushed — or it pushes nothing.** A bare push that leaves the PR behind base or conflicting is the *exact* problem this skill exists to end. So:
- **Always rebase onto the base before pushing.** "Just push, deal with main later" / "I'm in a hurry, skip the rebase" / "CI will catch it" is **not** `/pr`. Leaving the PR conflicting is the failure, not a shortcut.
- **Always run [VERIFY] before the push, and never push on red.** A fast push of a broken branch is still broken.
- **Violating the letter here is violating the spirit.** The whole point is to stop you from having to repeat "rebase from main and verify" every time — an agent that skips it because *this once* feels urgent has reintroduced the problem.
If someone explicitly asks you to push **without** syncing/verifying, that's outside this skill — **stop and say so**, and confirm they want a raw `git push` instead of `/pr`. Don't silently downgrade `/pr` into a bare push.
## When to Use
- You made a follow-up change and want it on a PR.
- Main moved on and your open PR needs to be brought up to date.
- Your PR shows conflicts with its base.
- The earlier PR for this branch got merged and you have more changes.
- You have several PRs in one session and want this branch's PR handled — not another.
**Don't use for:** the very first finish of a fresh feature when you'd rather run the full `superpowers:finishing-a-development-branch` flow (changelog/cleanup prompts). `/pr` is the lightweight update/follow-up path; it will still *create* a PR if the branch has none.
## The one decision that matters
```dot
digraph pr_decision {
rankdir=TB;
"Query LIVE PR status for current branch\n(gh pr view --json state,number,url,baseRefName)" [shape=box];
"status?" [shape=diamond];
"OPEN: UPDATE it" [shape=box];
"MERGED / CLOSED: NEW PR" [shape=box];
"NONE: CREATE first PR" [shape=box];
"Query LIVE PR status for current branch\n(gh pr view --json state,number,url,baseRefName)" -> "status?";
"status?" -> "OPEN: UPDATE it" [label="OPEN"];
"status?" -> "MERGED / CLOSED: NEW PR" [label="MERGED/CLOSED"];
"status?" -> "NONE: CREATE first PR" [label="no PR found"];
}
```
Branching on **stale assumptions instead of the live query** is the bug. Run the query first, every time.
## Procedure
### 0. Capture the follow-up, then read the ground truth
1. `BRANCH=$(git branch --show-current)`.
2. `BASE` = the repo's default branch: `git remote show origin | sed -n 's/.*HEAD branch: //p'` (fallback `main`). Most repos: `main`.
3. **Don't lose uncommitted work.** If `git status --porcelain` is non-empty, commit it to `BRANCH` now (a normal scoped commit) — a rebase needs a clean tree. (Stash only if you're unsure where it belongs.)
4. `git fetch origin`.
5. **Query the live PR — do not rely on memory:**
```
gh pr view "$BRANCH" --json state,number,url,baseRefName
```
Non-zero / "no pull requests found" ⇒ status is **NONE**.
### 1. Route on the live status
**OPEN → update this PR (the common case):**
1. **Rebase onto the base** (your house style is rebase, not merge):
`git rebase "origin/$BASE"`
2. **Conflicts?** Resolve them preserving *this branch's intent* (the change is the point; the base is context). Then `git add <files>` and `git rebase --continue`. Repeat until the rebase finishes.
3. **Verify:** run the project's **[VERIFY]** command. It must exit clean.
- Green → step 4.
- Red → **STOP. Do not push.** Surface what failed (a bad conflict resolution is the usual cause).
4. **Push the new revision:** `git push --force-with-lease` (rebase rewrote history; `--force-with-lease` is safe, plain `--force` is not). The open PR updates automatically.
5. Report: PR number + URL, that it's rebased on `BASE`, and verify is green.
**MERGED / CLOSED → open a NEW PR for the follow-up:**
The branch's PR is done; pushing more commits to it goes nowhere. Put the follow-up on a fresh branch **based on the updated base**, not on the stale branch:
1. New branch off the synced base: `git checkout -b "<type>/<slug>-followup" "origin/$BASE"` (`<type>` = feature/improve/fix per the change).
2. Bring the follow-up commits over: `git cherry-pick <the commits that aren't in BASE>` (or, if the follow-up was uncommitted, re-apply/commit it here).
3. **Verify** ([VERIFY], must be green — same STOP rule).
4. `git push -u origin HEAD`.
5. `gh pr create --base "$BASE" --head "$(git branch --show-current)" --title "…" --body "…"`.
6. Report the **new** PR number + URL, and that it supersedes the merged one.
**NONE → create this branch's first PR:**
1. Rebase onto base (steps as in OPEN, including conflict resolution).
2. **Verify** (green, else STOP).
3. `git push --force-with-lease` (or `-u origin HEAD` if never pushed).
4. `gh pr create --base "$BASE" --head "$BRANCH" --title "…" --body "…"`; report number + URL.
### Argument override
- `/pr new` ⇒ force the **NEW PR** path even if an open PR exists (you deliberately want to split this work out).
- A free-text arg ⇒ use it as the PR title/summary when creating.
### PR body — carry the test evidence
When this branch's work included a UI change verified by the e2e gate (`/feature` §7 / `/improve` §6 invoked `e2e-smoke`), the PR description must **include that evidence**: the per-step **screenshots** (embedded as images/thumbnails, not bare paths) and the **Playwright video/report link** (the CI artifact URL from the `e2e` job, or a preserved local capture under `e2e-evidence/`). When updating an existing PR and newer evidence exists, **refresh it**. A UI PR should *show* the working flow. (Pure non-UI changes: a normal summary + test plan is enough.)
## Quick reference
| Live PR status | Action | Push |
|----------------|--------|------|
| OPEN | rebase onto base → resolve → verify → push | `git push --force-with-lease` |
| MERGED / CLOSED | new branch off `origin/BASE` → cherry-pick follow-up → verify → push → `gh pr create` | `git push -u origin HEAD` |
| NONE | rebase → verify → push → `gh pr create` | `--force-with-lease` / `-u` |
Sync is always **rebase onto `origin/BASE`**. Push after a rebase is always **`--force-with-lease`**. Verify is always **before** the push, and a red verify always **stops** the push.
## Red flags — STOP and recheck
- You're about to push to a PR **without** having run `gh pr view` this run — you're trusting memory. Query first.
- You reached for **`git merge origin/main`** or a merge commit — house style is **rebase**. Use `git rebase "origin/$BASE"`.
- You're about to **push the branch as-is while it's behind base** ("to start CI", "deal with main later") — that leaves the PR conflicting, which is the failure `/pr` prevents. Rebase first.
- You're skipping **[VERIFY]** because you're rushed — verify before the push, always.
- You're force-pushing with plain **`git push --force`** — use **`--force-with-lease`**.
- The PR came back **MERGED/CLOSED** and you're still pushing to that branch — its review is over; open a **new** PR off updated base.
- You're creating a follow-up PR by branching off the **stale** feature branch instead of `origin/BASE` — it'll be born behind/conflicting. Branch off the synced base.
- **[VERIFY] failed and you pushed anyway** — never. A failing verify after a conflict resolution means the resolution is wrong.From miroo93/dev-workflows, MIT.
More from miroo93/dev-workflows
- 0.474score
projectstatus
miroo93
Use when the user asks "what's the project status", "where are we", "what should I work on next", "what's left", "what's blocked", or wants a spec-progress…
SkillCFreshness: CClaude Code +9 - 0.474score
projecthealth
miroo93
Use when the user asks "is the project healthy", "is CI green", "what's red", "are we deployable", "any failing checks", "is anything broken"…
SkillCFreshness: CClaude Code +9 - 0.471score
e2e-smoke
miroo93
Internal skill invoked by /feature, /improve, /troubleshoot to run a local real-browser smoke check against the running app and return PASS/FAIL/BLOCKED.
SkillCFreshness: CClaude Code +9 - 0.470score
troubleshoot
miroo93
Use when you (the human) found a bug while manually testing the app — an agent-built feature shows a wrong value, broken interaction, or console/runtime error…
SkillCFreshness: CClaude Code +9 - 0.467score
plan
miroo93
Generate a plan.md for the current feature from its spec.md.
SkillCFreshness: CClaude Code +9 - 0.467score
checklist
miroo93
Generate a requirements-quality checklist ("unit tests for the requirements") for the current feature on a chosen dimension like security, ux, or api.
SkillCFreshness: CClaude Code +9 - 0.467score
implement
miroo93
Execute the tasks in tasks.md for the current feature.
SkillCFreshness: CClaude Code +9 - 0.467score
analyze
miroo93
Run a read-only cross-artifact consistency check across spec.md, plan.md, and tasks.md for the current feature, before implementation.
SkillCFreshness: CClaude Code +9 - 0.467score
spec
miroo93
Create or update a feature spec.
SkillCFreshness: CClaude Code +9 - 0.467score
tasks
miroo93
Generate a tasks.md from plan.md for the current feature.
SkillCFreshness: CClaude Code +9 - 0.467score
tasks-to-issues
miroo93
Export the current feature's tasks.md into dependency-ordered GitHub issues for distributed/human tracking.
SkillCFreshness: CClaude Code +9 - 0.446score
improve
miroo93
Use when the user wants to CHANGE, EXTEND, or UPDATE an existing feature that currently works as specified ("add X to Y", "also support Z", "change how Y does…
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 9, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/miroo93/dev-workflows
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from miroo93
- 0.474score
projectstatus
miroo93
Use when the user asks "what's the project status", "where are we", "what should I work on next", "what's left", "what's blocked", or wants a spec-progress…
SkillCFreshness: CClaude Code +9 - 0.474score
projecthealth
miroo93
Use when the user asks "is the project healthy", "is CI green", "what's red", "are we deployable", "any failing checks", "is anything broken"…
SkillCFreshness: CClaude Code +9 - 0.471score
e2e-smoke
miroo93
Internal skill invoked by /feature, /improve, /troubleshoot to run a local real-browser smoke check against the running app and return PASS/FAIL/BLOCKED.
SkillCFreshness: CClaude Code +9 - 0.470score
troubleshoot
miroo93
Use when you (the human) found a bug while manually testing the app — an agent-built feature shows a wrong value, broken interaction, or console/runtime error…
SkillCFreshness: CClaude Code +9 - 0.467score
implement
miroo93
Execute the tasks in tasks.md for the current feature.
SkillCFreshness: CClaude Code +9 - 0.467score
analyze
miroo93
Run a read-only cross-artifact consistency check across spec.md, plan.md, and tasks.md for the current feature, before implementation.
SkillCFreshness: CClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get pr running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
pr skill. Agent Mart. https://agentmart.dev/skills/miroo93-pr (last updated 2026-10-24)