Create a draft GitHub pull request

VerifiedCaution

Create a detailed draft pull request after pushing changes and checking the branch. Uses conventional commits format and integrates a local review.

Sby Skills Guide Bot
DevelopmentIntermediate
2409/4/2026
Claude CodeCodex
#pull-request#git#github#conventional-commits#code-review

Recommended for

Our review

Opens a draft GitHub pull request with a conventional-commit title and a structured body, after enforcing a local review of the branch changes.

Strengths

  • Enforces a draft PR and a conventional title (<type>: <description>) under 70 characters in imperative lowercase
  • Lays out a precise execution sequence: inspect commits since main, check the upstream, push, then create via gh CLI
  • The PR body follows a fixed template (Summary / Changes / Test plan) that forces explicit change descriptions and verification steps
  • Handles the *_ee.rs symlink case with a companion PR in the enterprise repository

Limitations

  • Heavily tied to the windmill repo: [ee] prefix, docs/enterprise.md, windmill-ee-private and a default main branch
  • Assumes an authenticated gh CLI and a pre-installed local-review skill, which step 4 makes mandatory
  • Does not cover conflict resolution, rebasing, or remotes other than GitHub
When to use it

Use it when a local branch is ready and you want to quickly open a well-titled, well-documented draft GitHub PR.

When not to use it

Avoid it on a non-GitHub repository, without a configured gh CLI, or when the local-review skill is unavailable.

Security analysis

Caution
Quality score80/100

The skill is a straightforward git/GitHub PR workflow helper. Nothing is destructive or obfuscated — no `rm -rf`, no curl|sh, no credential exfiltration. However it does drive authenticated `gh` calls and `git push`, and it delegates to another skill and a doc file, so it uses powerful tooling for legitimate purposes. That lands at caution rather than safe.

Findings
  • •No allowed-tools declared, yet the skill instructs the agent to run bash commands (git status/log/diff/push) and authenticated `gh pr create` network operations
  • •Performs state-changing remote actions: `git push -u origin HEAD` and creating PRs on GitHub, including a second PR against a private repo (windmill-labs/windmill-ee-private)
  • •Hard dependency on an external `local-review` skill and `docs/enterprise.md` that must exist locally; if those are missing or untrusted, the instruction to invoke them is an unbounded delegation
  • •Repo-specific logic (symlinked `*_ee.rs`, `ee-repo-ref.txt`) could cause commits/pushes to an unexpected repo if the environment does not match assumptions

Examples

Open a draft PR
Open a draft PR for my current branch against main.
PR after fixing review issues
Run the local review on my branch, fix anything it flags, then open a draft pull request with a conventional title and a test plan.
PR with enterprise companion
I changed some *_ee.rs files — open the draft PR plus the companion PR in windmill-ee-private and update ee-repo-ref.txt.

name: pr user_invocable: true description: Open a draft pull request on GitHub. MUST use when you want to create/open a PR.

Pull Request Skill

Create a draft pull request with a clear title and explicit description of changes.

Instructions

  1. Analyze branch changes: Understand all commits since diverging from main
  2. Push to remote: Ensure all commits are pushed
  3. Create draft PR: Always open as draft for review before merging

PR Title Format

Follow conventional commit format for the PR title:

<type>: <description>

Types

  • feat: New feature or capability
  • fix: Bug fix
  • refactor: Code restructuring
  • docs: Documentation changes
  • chore: Maintenance tasks
  • perf: Performance improvements

Title Rules

  • Keep under 70 characters
  • Use lowercase, imperative mood
  • No period at the end
  • If *_ee.rs files were modified, prefix with [ee]: [ee] <type>: <description>

PR Body Format

The body MUST be explicit about what changed. Structure:

## Summary
<Clear description of what this PR does and why>

## Changes
- <Specific change 1>
- <Specific change 2>
- <Specific change 3>

## Test plan
- [ ] <How to verify change 1>
- [ ] <How to verify change 2>

The harness/tooling that invoked the skill may add its own attribution trailer; the skill itself does not prescribe one.

Execution Steps

  1. Run git status to check for uncommitted changes
  2. Run git log main..HEAD --oneline to see all commits in this branch
  3. Run git diff main...HEAD to see the full diff against main
  4. Invoke the local-review skill before creating the PR (/local-review in Claude Code, $local-review in Codex, pi --skill local-review / /skill:local-review in Pi). If issues are found, fix them and commit before proceeding. Do not skip this step.
  5. Check if remote branch exists and is up to date:
    git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo "no upstream"
    
  6. Push to remote if needed: git push -u origin HEAD
  7. Create draft PR using gh CLI:
    gh pr create --draft --title "<type>: <description>" --body "$(cat <<'EOF'
    ## Summary
    <description>
    
    ## Changes
    - <change 1>
    - <change 2>
    
    ## Test plan
    - [ ] <test 1>
    - [ ] <test 2>
    EOF
    )"
    
  8. Return the PR URL to the user

EE Companion PR (when *_ee.rs files were modified)

The *_ee.rs files in the windmill repo are symlinks to windmill-ee-private — changes won't appear in git diff of the windmill repo. Instead, check the EE repo for uncommitted or unpushed changes.

Follow the full EE PR workflow in docs/enterprise.md. The key PR-specific details:

  1. Find the EE repo/worktree: see "Finding the EE Repo" in docs/enterprise.md
  2. Check for changes: git -C <ee-path> status --short
    • If there are no changes in the EE repo, skip this entire section
  3. Follow steps 1–5 from the "EE PR Workflow" in docs/enterprise.md
  4. Create the companion PR (title does NOT get the [ee] prefix):
    gh pr create --draft --repo windmill-labs/windmill-ee-private --title "<type>: <description>" --body "$(cat <<'EOF'
    Companion PR for windmill-labs/windmill#<PR_NUMBER>
    EOF
    )"
    
  5. Commit ee-repo-ref.txt and push the updated windmill branch
Related skills