agentleFS
itsmostafaitsmostafa/agent-skills/skills/create-pr/SKILL.md

create-pr

Skill4 starsChanged 44 days agoMITView on GitHub

Group uncommitted changes into logical conventional commits, push them to a feature branch, and open a GitHub pull request with a release-please friendly description. Use when the user types /create-pr or asks to commit their changes and open a PR.

  • 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

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

  • 0

    Common

    Most of the 179 edited versions we read keep these.

  • 10

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    test: Test changes (no version bump)

    line 19
  2. Distinctive:

    When this skill is invoked:

    line 35
  3. Distinctive:

    By layer: Keep related files together (e.g., API handler + its test file)

    line 46
  4. Distinctive:

    Test additions → can be separate or with implementation

    line 55
  5. Distinctive:

    PR Title: Use the primary/most significant change as the PR title.

    line 145
  6. Distinctive:

    Create multiple logical commits: instead of one massive commit

    line 152
  7. Distinctive:

    Breaking changes: must include BREAKING CHANGE: in commit footer or !

    line 157
  8. Distinctive:

    PR title: should reflect the primary change or summarize multiple changes

    line 158
  9. Distinctive:

    All changes are tightly coupled and inseparable

    line 250
  10. Distinctive:

    Create multiple commits in logical progression order

    line 259

“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 Pull Request with Release-Please Guidelines

This skill automates the process of committing changes, pushing to GitHub, and creating a Pull Request with a comprehensive description following Google release-please guidelines.

Conventional Commit Types

  • feat: New feature (triggers minor version bump)
  • fix: Bug fix (triggers patch version bump)
  • feat! or fix!: Breaking change (triggers major version bump)
  • chore: Maintenance tasks (no version bump)
  • docs: Documentation changes (no version bump)
  • refactor: Code refactoring (no version bump)
  • test: Test changes (no version bump)
  • perf: Performance improvements (triggers patch version bump)

Release-Please Guidelines

PR descriptions should include:

  1. Clear title: Following conventional commits format
  2. Summary: What changed and why
  3. Breaking Changes: Clearly marked with BREAKING CHANGE: footer
  4. Related Issues: Link to issues using Fixes or Closes keywords
  5. Test Plan: How to verify the changes
  6. Release Notes: User-facing description of changes

Instructions for Claude

When this skill is invoked:

  1. Check git status and diff:
    git status
    git diff --staged
    git diff
  2. Group changes into logical commits by analyzing:

    • By feature/functionality: Group files that implement the same feature together
    • By layer: Keep related files together (e.g., API handler + its test file)
    • By change type: Separate refactoring from new features from bug fixes
    • By scope: Group changes affecting the same module/package

    Common grouping patterns:

    • handler.go + handler_test.go → one commit
    • api.yaml + generated openapi/*.gen.go → one commit
    • Multiple files for same feature → one commit
    • Unrelated fixes → separate commits
    • Test additions → can be separate or with implementation
  3. Determine commit type for each group:
    • New features → feat
    • Bug fixes → fix
    • Breaking changes → Add ! suffix or BREAKING CHANGE: footer
    • Other changes → chore, refactor, docs, test, etc.
  4. Identify the scope for each commit (optional but recommended):
    • Examples: api, config, workflow, provider, auth, etc.
  5. Check current branch:
    git branch --show-current
  6. If on main/master, create a new feature branch:
    git checkout -b <type>/<scope>-<short-description>
    Examples: feat/api-appointment-slots, fix/auth-token-validation
  7. Create commits for each logical group (repeat for each group):

    # Stage only files for this commit group
    git add <file1> <file2> ...
    
    # Create the commit
    git commit -m "<type>(<scope>): <description>
    
    <body with detailed explanation>
    
    BREAKING CHANGE: <description if applicable>
    
    Fixes #<issue-number> (if applicable)"

    Commit order: Order commits so that reading them oldest-first explains the change, usually setup, then implementation, then tests and docs. Tests may share a commit with the code they cover.

  8. Push to remote:
    git push -u origin <branch-name>
  9. Create PR with comprehensive description:

    gh pr create --title "<primary-change-title>" --body "$(cat <<'EOF'
    ## Summary
    <1-3 sentence summary of what changed and why>
    
    ## Commits
    - `<short-sha>` <commit title>
    
    ## Changes
    - <bullet point list of key changes>
    - <each change should be clear and specific>
    
    ## Breaking Changes
    <If applicable, list breaking changes with migration guide>
    <If not applicable, write "None">
    
    ## Test Plan
    - [ ] <How to test the changes>
    - [ ] <Include specific curl commands or test steps>
    - [ ] <Verify no regressions>
    
    ## Related Issues
    Fixes #<issue-number> (if applicable)
    Closes #<issue-number> (if applicable)
    
    ## Release Notes
    <User-facing description for changelog>
    <Written from user perspective>
    <Highlight value and impact>
    
    ## Screenshots/Logs
    <If applicable, include relevant screenshots or log outputs>
    
    ## Checklist
    - [ ] Tests pass locally (project test command)
    - [ ] Linting passes (project lint command)
    - [ ] Documentation updated (if needed)
    - [ ] Breaking changes documented
    - [ ] Conventional commit format followed
    EOF
    )"

    PR Title: Use the primary/most significant change as the PR title. If all commits are of equal importance, use a summary title that encompasses the changes.

  10. Display PR URL and confirm successful creation

Important Notes

  • Create multiple logical commits instead of one massive commit
  • Each commit should be atomic: It should represent one logical change that could stand alone
  • Always follow Conventional Commits format for commit messages
  • Use imperative mood in commit descriptions (e.g., "add feature" not "added feature")
  • Keep commit title under 72 characters
  • Breaking changes must include BREAKING CHANGE: in commit footer or ! after type/scope
  • PR title should reflect the primary change or summarize multiple changes
  • Verify all services are properly tested before creating PR
  • Link related issues using GitHub keywords (Fixes, Closes, Resolves)
  • Commit order should tell a story: Reading commits chronologically should explain the progression of changes

Example: Multiple Commits for a Feature

Given changes to implement appointment slot filtering, create separate commits:

Commit 1 - API spec update:

docs(api): add provider_type parameter to slots endpoint

Update OpenAPI spec with new query parameter for filtering
appointment slots by provider type.

Commit 2 - Core implementation:

feat(api): add appointment slot filtering by provider

Implement endpoint to filter available appointment slots based on
provider type and location preferences. This improves user experience
by showing only relevant appointment options.

- Add provider filter to slots endpoint
- Implement timezone conversion for slot times

Fixes #123

Commit 3 - Tests:

test(api): add tests for appointment slot filtering

Add unit tests covering filter logic, timezone conversion,
and edge cases for the new provider filtering feature.

Example PR Description (Multiple Commits)

## Summary
Adds appointment slot filtering by provider type to improve user experience when booking appointments.

## Commits
- `a1b2c3d` docs(api): add provider_type parameter to slots endpoint
- `e4f5g6h` feat(api): add appointment slot filtering by provider
- `i7j8k9l` test(api): add tests for appointment slot filtering

## Changes
- Added `provider_type` query parameter to `/v1/appointments/slots` endpoint
- Implemented timezone conversion for accurate slot display across regions
- Updated OpenAPI spec with new filtering parameters
- Added unit tests for filter logic and edge cases

## Breaking Changes
None

## Test Plan
- [ ] Run the test suite to verify all tests pass
- [ ] Test filtering with curl:
  ```bash
  curl -X GET "http://localhost:8080/v1/appointments/slots?start_date=2025-11-01&end_date=2025-11-15&provider_type=primary_care" \
    -H "Authorization: Bearer valid-jwt"
  • Verify timezone handling for different user locations
  • Test backward compatibility (endpoint works without filter)

Related Issues

Fixes #123

Release Notes

Users can now filter appointment slots by provider type, making it easier to find appointments with their preferred healthcare provider.

Checklist

  • Tests pass locally (project test command)
  • Linting passes (project lint command)
  • Documentation updated
  • Conventional commit format followed

## When to Use Single vs Multiple Commits

**Use multiple commits when:**
- Changes span different concerns (API, tests, docs)
- Changes affect different modules/packages
- You have both bug fixes and new features
- Changes can be logically separated for easier review
- Implementation + tests can be split

**Use a single commit when:**
- All changes are tightly coupled and inseparable
- Very small change (few lines across 1-2 files)
- Single atomic change that makes no sense to split

## Usage

Invoke this skill with `/create-pr` and Claude will:
1. Analyze your uncommitted changes
2. Group changes into logical commit units
3. Create multiple commits in logical progression order
4. Push all commits to the feature branch
5. Generate a comprehensive PR with release-please compatible formatting
6. Open the PR on GitHub

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.