Creates Pull Requests automatically by analyzing your Git changes for a smoother workflow.
Automatically creates draft pull requests by analyzing your Git changes. It scans your staged files to auto-select up to 3 relevant labels and fills your project's PR template while preserving HTML comments.
/plugin marketplace add wasabeef/claude-code-cookbook/plugin install cook-en@claude-code-cookbookCreates Pull Requests automatically by analyzing your Git changes for a smoother workflow.
# Auto-create PR from your changes
git add . && git commit -m "feat: Implement user authentication"
"Create a Draft PR with the right description and labels"
# Keep your existing template
cp .github/PULL_REQUEST_TEMPLATE.md pr_body.md
"Fill in the blanks but keep the template structure intact"
# Mark as ready when done
gh pr ready
"Switch to Ready for Review after checking quality"
# 1. Create branch and commit
git checkout main && git pull
git checkout -b feat-user-profile
git add . && git commit -m "feat: Implement user profile feature"
git push -u origin feat-user-profile
# 2. Create PR
"Please create a PR:
1. Check what changed with git diff --cached
2. Use the PR template from .github/PULL_REQUEST_TEMPLATE.md
3. Pick up to 3 labels that match the changes
4. Create it as a Draft (keep HTML comments)"
# 3. Make it ready after CI passes
"Once CI is green, mark the PR as Ready for Review"
# Branch naming: {type}-{subject}
git checkout main
git pull
git checkout -b feat-user-authentication
# Confirm you're on the right branch
git branch --show-current
# Stage your changes
git add .
# Commit with a clear message
git commit -m "feat: Implement user authentication API"
# First push (sets upstream)
git push -u origin feat-user-authentication
# Later pushes
git push
Step 1: Analyze Changes
# See what files changed
git diff --cached --name-only
# Review the actual changes (first 1000 lines)
git diff --cached | head -1000
Step 2: Auto-generate Description
# Template priority:
# 1. Keep existing PR description as-is
# 2. Use .github/PULL_REQUEST_TEMPLATE.md
# 3. Fall back to default template
cp .github/PULL_REQUEST_TEMPLATE.md pr_body.md
# Fill empty sections only - don't touch HTML comments or separators
Step 3: Auto-select Labels
# Get available labels (non-interactive)
"Retrieve available labels from .github/labels.yml or GitHub repository and automatically select appropriate labels based on changes"
# Auto-selection by pattern matching (max 3)
# - Documentation: *.md, docs/ → documentation|docs
# - Tests: test, spec → test|testing
# - Bug fixes: fix|bug → bug|fix
# - New features: feat|feature → feature|enhancement
Step 4: Create PR via GitHub API (Preserve HTML Comments)
# Create PR
"Create a Draft PR with the following information:
- Title: Auto-generated from commit message
- Description: Properly filled using .github/PULL_REQUEST_TEMPLATE.md
- Labels: Auto-selected from changes (max 3)
- Base branch: main
- Preserve all HTML comments"
Method B: GitHub MCP (Fallback)
// Create PR while preserving HTML comments
mcp_github_create_pull_request({
owner: "organization",
repo: "repository",
base: "main",
head: "feat-user-authentication",
title: "feat: Implement user authentication",
body: prBodyContent, // Full content including HTML comments
draft: true,
maintainer_can_modify: true,
});
*.md, README, docs/ → documentation|docs|doctest, spec → test|testing.github/, *.yml, Dockerfile → ci|build|infra|opspackage.json, pubspec.yaml → dependencies|depsfix|bug|error|crash|repair → bug|fixfeat|feature|add|implement|new-feature|implementation → feature|enhancement|featrefactor|clean|restructure → refactor|cleanup|cleanperformance|perf|optimize → performance|perfsecurity|secure → security.github/PULL_REQUEST_TEMPLATE.md{type}-{subject}
Examples:
- feat-user-profile
- fix-login-error
- refactor-api-client
{type}: {description}
Examples:
- feat: Implement user authentication API
- fix: Correct login error
- docs: Update README
.github/PULL_REQUEST_TEMPLATE.md<!-- Copilot review rule --><!-- ... --> stay as-is--- stay putHeads up: GitHub CLI (gh pr edit) escapes HTML comments, and shell processing can mess things up with strings like EOF < /dev/null.
How to fix this:
# Commit your fixes
git add .
git commit -m "fix: Address review feedback"
git push
gh pr edit escapes HTML comments and can break things--field option for proper handling.github/labels.ymlgh pr checks to see the statusgh pr ready when quality looks good/pr-create> 不再推荐:请优先使用 `/pr-create-smart` 生成高质量的 PR 描述草稿,然后使用 gh/GUI 创建 PR。本命令属于“端到端自动创建 PR(保留模板、自动打标签、创建 Draft)”的旧方案,仅为兼容保留。
/pr-createCrée automatiquement des Pull Requests en analysant vos modifications Git pour un flux de travail plus fluide.
/pr-create> 不再推薦:請優先使用 `/pr-create-smart` 生成高質量的 PR 描述草稿,然後使用 gh/GUI 創建 PR。本命令属于“端到端自動創建 PR(保留模板、自動打標簽、創建 Draft)”的旧方案,仅為兼容保留。