create-pr
Skill2 starsChanged 6 days agoApache-2.0View on GitHub
Create a GitHub pull request for the current branch with a consistent description, ticket linkage, and CI follow-through. Use whenever the user wants to open a PR, submit a pull request, or push and create a PR.
- Commits and pushes
196 other projects use a version of this.
Adopted by
Most recently taken up by
- lohi-ai/babysittheir own version, first seen Nov 8, 2026
- alexandrosandre/agentic-engineeringtheir own version, first seen Nov 8, 2026
- alexandrosandre/alice-issue-agenttheir own version, first seen Nov 8, 2026
- rccsousa/skillstheir own version, first seen Nov 8, 2026
- next-step/nextstep-skillstheir own version, first seen Nov 8, 2026
- blamechris/chroxytheir own version, first seen Nov 8, 2026
Used with
Projects with it also use update-pr, act-on-feedback and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillupdate-pr
Update the pull request for the current session. Use when the user wants to push new changes to an existing PR.
Also in 9 projects that use this
MicrosoftSkillact-on-feedback
Act on user feedback attached to the current session. Use when the user submits feedback on the session's changes via the Submit Feedback button.
Also in 3 projects that use this
ModelEngine-GroupSkillcreate-release-note
从 PR/commit 中自动生成结构化的 Release Notes,并可选创建 GitHub Draft Release。支持 x.y.0 版本合并前一 minor 系列的 release notes。当用户要求生成发布说明、创建 release notes 时触发。参数为版本号和可选的上一版本号。
Also in 3 projects that use this
frostneySkillnative-nostalgia-stack
Applies the user's FreePascal toolchain and its build, formatting, hook, and test contracts while leaving project-specific mechanics local. Use when scaffolding or working in a FreePascal project that follows this toolchain.
Also in 3 projects that use this
frostneySkillsoftware-engineering-excellence
Applies the user's engineering standards during substantial technical work: preserve scope, use current evidence, delegate independent parts, and complete authorized outcomes. Use during substantial implementation, debugging, refactoring, or multi-part delivery work.
Also in 3 projects that use this
parkchuSkillstart-mission
넥스트스텝(NextStep) 미션을 처음 시작할 때, 미션 저장소를 fork·clone하고 최초 작업 브랜치(step1 등)까지 만들어 준다. gh CLI로 fork하고 clone까지 이어서 처리하며, gh가 없거나 인증이 안 돼 있으면 브라우저 Fork 안내로 폴백한다. 이미 fork/clone돼 있으면 재사용하고 이어서 진행한다(재실행 안전). 사용자가 "미션 시작하려는데 저장소 세팅해줘", "새 미션 시작할래", "fork부터 해줘", "/nextstep:start-mission" 등으로 요청할 때 사용한다.
Also in 3 projects that use this
- +1 more from microsoft
Other versions196 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 196
- microsoft/vscode★ 195ksame name
- vercel/next.js★ 143ksame name
- penpot/penpot★ 62ksame name
- remix-run/react-router★ 57ksame name
- moeru-ai/airi★ 51ksame name
- ToolJet/ToolJet★ 41ksame name
- ueberdosis/tiptap★ 39ksame name
- BabylonJS/Babylon.js★ 26ksame name
- kortix-ai/suna★ 21ksame name
- kortix-ai/CompanyOS★ 21ksame name
186 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- AGENTS.mdAGENTS.md
- adopt-evalSkill
- contract-validationSkill
- designSkill
- graphifySkill
- helm-upgradeSkill
- ingest-readingSkill
- investigate-alertSkill
- k8s-debugSkill
- parallax-reviewSkill
- shiny-engineerSkill
- stakeholder-commsSkill
- stop-slop-codeSkill
- systematic-debuggingSkill
- upstream-triageSkill
- verify-claimsSkill
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 5 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 179 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 110
If the user asks for a draft, a WIP, or says it is not ready for review, pass --draft and keep the body to the ticket link plus one line on …
- Distinctive: line 123
Every PR title is Conventional Commits and carries its ticket key:
- Very specific: line 142
If CI fails, read the failure (gh pr checks <num> plus the failing job's output), fix root causes (not symptoms), commit, push.
- Very specific: line 143
Add a bd comments entry referencing the PR.
- Very specific: line 144
If the original task is in bd, close it on merge: bd close <id> --reason "PR #<num> merged.".
- Very specific: line 145
Run core/protocols/pr-review-loop.md decision matrix — dispatch pr-reviewer if the change qualifies.
- Distinctive: line 149
Never push to main / master.
- Very specific: line 150
Never --force to a protected branch.
- Distinctive: line 151
Never auto-merge — humans review.
- Distinctive: line 152
Never include credentials, tokens, or real internal URLs in the PR body.
- Distinctive: line 153
Never hard-code a base branch.
“Common” is measured: kept by at least 6 in 10 of the 179 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Create PR
This skill replaces ad-hoc git push && gh pr create invocations with a consistent flow that:
- Validates the branch and working tree.
- Generates a structured PR description with rationale (WHY, not just WHAT).
- Links the relevant external ticket.
- Triggers CI follow-through with
gh pr checks.
Preconditions
- Working tree clean (or staged changes deliberate).
- On a feature branch (never
main/master). - An external ticket ID is available in the calling task or in the bd task description.
ghis authenticated.
Resolve the base branch first — never assume main
Repo defaults genuinely differ (main, master, dev, trunk), and two repos side by side in
one estate routinely disagree. An ahead-check, a rebase, or a discipline gate run against the wrong
base compares the branch to something it never forked from: it reports a clean diff and the skill
reads as passing. Resolve it explicitly, in this order, and fail loudly rather than fall back to a
guess — re-derive it from gh pr view --json baseRefName whenever a PR already exists rather than
trusting a value written down earlier [learnings-code-review.md#34].
# 1. If a PR already exists for this branch, its own base is authoritative.
BASE_REF=$(gh pr view --json baseRefName -q .baseRefName 2>/dev/null)
# 2. Otherwise the remote's default branch.
[ -n "$BASE_REF" ] || BASE_REF=$(git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null | sed 's|^origin/||')
# 3. No silent default. Say what to run.
[ -n "$BASE_REF" ] || {
echo "refuse: cannot resolve the base branch. Run 'git remote set-head origin -a', or pass the base explicitly."
exit 1; }Everything below uses $BASE_REF. Where a gate script resolves the base itself, let it — do not
pass a ref you computed here, and never a hard-coded one.
Steps
# Verify branch
test "$(git rev-parse --abbrev-ref HEAD)" != "main" || { echo "refuse: on main"; exit 1; }
test "$(git rev-parse --abbrev-ref HEAD)" != "master" || { echo "refuse: on master"; exit 1; }
# Ensure latest, against the resolved base (see above)
git fetch origin "$BASE_REF"
git rebase "origin/$BASE_REF" || { echo "resolve rebase conflicts and re-run"; exit 1; }
# Confirm there is something to open a PR for — empty output means stop, not proceed
git log "origin/$BASE_REF"..HEAD --oneline
# Discipline gates — BLOCKING, both run before the branch is pushed.
# Mechanical, not advisory: do not substitute your own judgment for either.
# Omit --base on purpose: each script resolves the REMOTE default branch itself, which
# stays correct in a repo whose default is not `main` and cannot go stale the way a
# local ref does. Pass --base only to override a resolution you know to be wrong.
core/hooks/generic/comment-discipline.sh || {
echo "refuse: fix the comments and amend, then re-run"; exit 1; }
core/hooks/generic/test-discipline.sh || {
echo "refuse: cut the tests or name the contract each pins, then re-run"; exit 1; }
# Push the feature branch (set upstream on first push)
git push -u origin "$(git rev-parse --abbrev-ref HEAD)"
# Create the PR — see "PR title" below for the title rule
gh pr create \
--base "$BASE_REF" \
--title "<type>(<scope>): <description> (<TICKET-KEY>)" \
--body "$(cat <<EOF
## Why
<one paragraph: motivation, what this unblocks, what it does NOT do>
## What changed
- <bulleted list of substantive changes>
## Validation
- <command/check>: <pass/fail evidence>
## Ticket
- <TICKET-KEY>: <ticket URL>
## Risk
- <one line: low / medium / high and the smallest unit that could regress>
EOF
)"
# Follow CI
pr_number="$(gh pr view --json number -q .number)"
gh pr checks "$pr_number"Draft PRs carry almost nothing
If the user asks for a draft, a WIP, or says it is not ready for review, pass --draft and keep the
body to the ticket link plus one line on what the branch does. Skip the sections above: no Why, no
Validation, no Risk, no rendered output. The code is what they want to read, and they will say when
to make it ready. That is also when the full body and the review arrive, so do not dispatch a
reviewer on a draft (Never dispatch in core/protocols/pr-review-loop.md).
PR title
Canonical rule: PR titles in core/protocols/bd-and-memory.md.
That file is the source of truth — sub-agents cannot invoke skills, so the protocol is the rule's
only reachable home for them. Restated here because this skill is the main path; if the two ever
read differently, the protocol wins.
Every PR title is Conventional Commits and carries its ticket key:
<type>(<scope>): <description> (<TICKET-KEY>)chore(infra): remove the retired pool-2 node pool (PLAT-142)
feat(monitoring): add node-pool saturation alerts (OBS-77)- Type from
feat|fix|chore|refactor|docs|test|ci|perf|build. Pick one you can defend: a cost or noise reduction ischore; a behaviour correction isfix. - Scope is optional but single. Never comma-separate — a title lint using
amannn/action-semantic-pull-requestrejectsfeat(a,b): …outright. Multiple areas → pick the primary scope, or drop the scope. - Ticket key in trailing parens, UPPERCASE. Branches read
feature/plat-142-slug, so uppercase what you extract from one. If there is genuinely no ticket, omit it — never invent one. - The head commit's subject must match the PR title, so a squash merge cannot produce a message that disagrees with the PR.
- Repo history is mostly not in this form. Do not copy it. The one exception is a repo with an enforced different convention (a title-lint CI job, or a
<type>: <TICKET-KEY> | <title>house style) — follow the enforced one and say which you used.
After the PR opens
- If CI fails, read the failure (
gh pr checks <num>plus the failing job's output), fix root causes (not symptoms), commit, push. - Add a
bd commentsentry referencing the PR. - If the original task is in
bd, close it on merge:bd close <id> --reason "PR #<num> merged.". - Run
core/protocols/pr-review-loop.mddecision matrix — dispatchpr-reviewerif the change qualifies.
Constraints
- Never push to
main/master. - Never
--forceto a protected branch; use--force-with-leaseon your own feature branch only. - Never auto-merge — humans review.
- Never include credentials, tokens, or real internal URLs in the PR body.
- Never hard-code a base branch. Resolve it, or let the gate script resolve it.
Memory
Before finishing:
bd remember "<self-contained insight about the change>" --key <repo>/<prefix>/<topic>Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

