How this command is triggered — by the user, by Claude, or both
Slash command
/claude-vibes:04-pr Optional PR title override03-SHIP/The summary Claude sees in its command listing — used to decide when to auto-load this command
# Create Pull Request You are helping a vibe coder ship their work by creating a pull request. This is the full pipeline: commit any changes, push to remote, and create a PR for review. ## Your Role **CRITICAL: ALWAYS use the AskUserQuestion tool for ANY question to the user. Never ask questions as plain text output.** The AskUserQuestion tool ensures a guided, interactive experience with structured options. Every single user question must go through this tool. You do the heavy lifting. Handle all git operations, generate a meaningful PR description, and create the pull request. The use...
You are helping a vibe coder ship their work by creating a pull request. This is the full pipeline: commit any changes, push to remote, and create a PR for review.
CRITICAL: ALWAYS use the AskUserQuestion tool for ANY question to the user. Never ask questions as plain text output. The AskUserQuestion tool ensures a guided, interactive experience with structured options. Every single user question must go through this tool.
You do the heavy lifting. Handle all git operations, generate a meaningful PR description, and create the pull request. The user doesn't need to think about git workflows—you orchestrate everything.
Only check LOGS.json if it has uncommitted changes.
First, run:
git status --porcelain -- LOGS.json docs/LOGS.json 2>/dev/null
If output is non-empty (LOGS.json has uncommitted changes), read it to create a comprehensive PR description that explains:
If output is empty, skip reading LOGS.json—rely on commit messages and diffs instead to build the PR description.
First, determine the repository's default branch:
gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'
This returns the repo's default branch (usually main or master).
Store this as $DEFAULT_BRANCH for later use.
Run git status and git log to understand:
If on the default branch:
PRs merge one branch into another, so you need to be on a feature branch.
"You're on $DEFAULT_BRANCH. To create a PR, you need to be on a separate branch."
$DEFAULT_BRANCH?"feat/add-user-auth), create it, and continue/03-push instead (no PR needed for solo work on main)If uncommitted changes exist:
git diff"Committing your changes first..."
Ensure all commits are pushed:
git push -u origin <current-branch>
"Pushing to remote..."
Understand what this PR contains:
git log $DEFAULT_BRANCH..HEAD to see all commitsgit diff $DEFAULT_BRANCH...HEAD to see all changesCreate a PR with this format:
## Summary
[2-3 bullet points explaining what this PR does and why]
## Changes
[List of key changes, grouped logically]
## Testing
[How to verify these changes work]
## Notes
[Any context reviewers should know]
Example:
## Summary
- Adds user authentication with email/password login
- Implements session management with secure cookies
- Adds protected routes that require login
## Changes
**Authentication:**
- Added NextAuth configuration with credentials provider
- Created login and signup pages
- Added auth middleware for protected routes
**Database:**
- Added User model with password hashing
- Created session storage schema
## Testing
1. Go to /signup and create an account
2. Log out and log back in at /login
3. Try accessing /dashboard without logging in (should redirect)
## Notes
- Uses bcrypt for password hashing
- Sessions expire after 7 days
Use GitHub CLI:
gh pr create --base $DEFAULT_BRANCH --title "<title>" --body "<description>"
Target branch: The repository's default branch (detected in step 1).
PR title: Use $ARGUMENTS if provided, otherwise generate from commits.
"Pull request created!"
https://github.com/owner/repo/pull/123feat: add user authentication$DEFAULT_BRANCH"Share this link for review, or merge when ready."
Generate title from the commits:
feat: add user authenticationUser-provided title: $ARGUMENTS
PR already exists: "A PR already exists for this branch."
No commits to include:
"This branch has no new commits compared to $DEFAULT_BRANCH. Nothing to create a PR for."
Target branch behind:
"The $DEFAULT_BRANCH branch has new commits. Consider rebasing first."
$DEFAULT_BRANCH?"npx claudepluginhub mike-coulbourn/claude-vibes --plugin claude-vibes