agentleFS
theamtheam/claude-dev-kit/skills/create-pr/SKILL.md

create-pr

Skill17 starsChanged 3 months agoApache-2.0View on GitHub

Create a branch, commit the work, and open a pull request for a completed user story, after all quality gates pass. Use when the user asks to open/create a PR or as the final step of the story workflow.

  • Commits and pushes

196 other projects use a version of this.

Adopted by

Most recently taken up by

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.
  • MicrosoftSkill

    update-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

  • MicrosoftSkill

    act-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-GroupSkill

    create-release-note

    从 PR/commit 中自动生成结构化的 Release Notes,并可选创建 GitHub Draft Release。支持 x.y.0 版本合并前一 minor 系列的 release notes。当用户要求生成发布说明、创建 release notes 时触发。参数为版本号和可选的上一版本号。

    Also in 3 projects that use this

  • frostneySkill

    native-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

  • frostneySkill

    software-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

  • parkchuSkill

    start-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

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 179 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Commit message: <type>: <TICKET-KEY> <imperative summary> plus a short body of key changes.

    line 25
  2. Very specific:

    Use the repo's PR template instead if one exists (.github/PULL_REQUEST_TEMPLATE.md), adding the badge, summary, verification evidence, and …

    line 79

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Create PR

Final step of the story workflow. Runs when the applicable gates pass (gates are adaptive to the project — see instructions/testing-standards.md).

Preconditions (verify, do not assume)

  1. Unit tests for touched files pass — when the project has a test framework.
  2. coverage-check passes — when the project has coverage tooling (project's bar, default ≥ 95%, no regression).
  3. Related e2e tests pass — when the project does e2e (e2e-generate ran for user-facing changes).
  4. Lint passes for touched files — when the project lints.
  5. A pr-review-style self-review found no unresolved blocking findings.
  6. Security pass has no blocking findings (always applies).

A gate that does not apply (no test/e2e/lint setup) is not a blocker — but it must be called out in the PR "How it was verified" section as not applicable, recommend adding, never omitted. A gate that applies and fails stops the PR: report what's missing instead of opening it. (A gates policy in .claude/dev-kit.json can force required/off.)

Branch & commit

  1. Branch from the repo's default integration branch. Naming: <type>/<TICKET-KEY>-<short-slug> (e.g. feat/PROJ-1234-payment-status-filter). Follow the repo's convention if one exists.
  2. Stage only files related to the story. List anything intentionally left out.
  3. Commit message: <type>: <TICKET-KEY> <imperative summary> plus a short body of key changes. Follow the repo's convention if one exists.

Pull request

Before creating, check the branch doesn't already have an open PR (gh pr view <branch> --json number,state,url, or gh pr list --head <branch> --state open). If one is open, update it instead of opening a duplicate. If the only PR for the branch is closed/merged, do not reuse its number — push to a fresh branch and open a new PR. Never assume a PR number from earlier in the session.

Open the PR on the configured host (prHost in .claude/dev-kit.json; default github). Branch/commit/push are the same everywhere (plain git); only the "open the PR" call differs:

  • github — gh pr create (gh authenticated).
  • bitbucket — push the branch, then create the PR via the REST API: POST https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}/pullrequests with {title, source:{branch:{name}}, destination:{branch:{name}}}, authenticated with a Bitbucket app password / access token from the environment (e.g. BITBUCKET_TOKEN). The acli CLI works too if the team uses it. Derive {workspace}/{repo_slug} from the origin remote.
  • gitlab — glab mr create (glab authenticated).
  • azure — az repos pr create --source-branch <branch> --target-branch <base> --title <title> --description <body> (Azure CLI with the azure-devops extension, az login authenticated; run az extension add --name azure-devops once if missing). The org/project/repo come from the origin remote or az devops configure --defaults.
  • other/none — print the branch and the ready-to-paste PR title/body and let the user open it.

The body must include (adapt field names to the host — GitHub/GitLab render Markdown; Bitbucket PR descriptions accept Markdown too):

![AI-generated](https://img.shields.io/badge/%F0%9F%A4%96_AI--generated-Claude_Code_%C2%B7_fullstack--dev--kit-8A2BE2)

## <TICKET-KEY>: <story title>

### Summary
<the product-facing summary: what was delivered in user terms and the
decisions taken, plain language — same content as the tracker comment>

### What changed
- ...

### How it was verified
- Unit tests: <command + result>
- Coverage on touched files: <summary — meets the project's bar>
- E2E: <suites run + result>
- Security pass: <verdict>
- Lint: clean

### Notes for reviewers
- <risks, follow-ups, technical decisions>

### Delivery readiness
<Include only the lines that apply — skip this whole section for trivial/internal changes; don't pad.>
- Rollback: safe to revert this PR on its own? Flag anything that isn't.
- Migrations: reversible and safe on a live DB (no long locks; backfill plan)?
- Config/secrets: new keys have safe defaults; nothing required-but-undocumented.
- Docs/contract: user-facing or API changes reflected in the docs.
- Breaking change / behind a feature flag: called out explicitly.

Issue: <link to the tracker item>

---
🤖 Generated with [Claude Code](https://claude.com/claude-code) via the
fullstack-dev-kit plugin. Plan approved by a human before implementation;
human review still required before merge.

Use the repo's PR template instead if one exists (.github/PULL_REQUEST_TEMPLATE.md), adding the badge, summary, verification evidence, and AI footer into it.

AI traceability metadata, best effort after creation:

  • Add an ai-generated label/tag to the PR when the host supports it — GitHub: gh pr edit <url> --add-label ai-generated (create it once with gh label create ai-generated --color 8A2BE2 if missing), then verify it stuck with gh pr view <url> --json labels — gh pr edit can error without applying anything on repos whose org ever used classic Projects; on a miss, apply via REST: gh api repos/<owner>/<repo>/issues/<pr-number>/labels -f "labels[]=ai-generated". Bitbucket/GitLab: skip or use the host's equivalent. If not possible, skip silently — the badge and footer already carry the signal.

After creation

Report only the PR URL/number the create call actually returned — capture it from gh pr create's output (or read it back with gh pr view <url> --json number,state,url), never a number you assumed or remembered. Then report the verification evidence and any follow-up risks explicitly.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.