Help us improve
Share bugs, ideas, or general feedback.
From squid
Creates or updates GitHub pull requests for the current branch. Handles push, title/description generation from commits, and CI verification.
npx claudepluginhub iusztinpaul/squid --plugin squidHow this skill is triggered — by the user, by Claude, or both
Slash command
/squid:create-prThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill handles the full PR lifecycle: push, create/update PR, code review, and CI verification. It never merges — that's always the user's decision.
Creates GitHub Pull Requests using GitHub CLI: detects existing PRs for branches, pushes changes, generates titles/bodies from commits. Handles monorepos/submodules. Use for /create-pr or PR/review requests.
Creates and manages GitHub pull requests using GH CLI: prepares branches, reviews diffs/commits, pushes, writes titles/descriptions, requests reviewers/labels, handles feedback, merges, and cleans up. Use for feature/fix branch reviews.
Provides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.
Share bugs, ideas, or general feedback.
This skill handles the full PR lifecycle: push, create/update PR, code review, and CI verification. It never merges — that's always the user's decision.
Run these in parallel:
git branch --show-currentgit statusgh pr list --head $(git branch --show-current) --json number,url,title,state --limit 1Stop if:
main or master — tell the user to create a feature branch first.commit-commands:commit skill).Save the branch name and whether a PR exists for the remaining steps.
Find the branch this one was created from, using this priority order:
gh pr view --json baseRefName -q .baseRefNamegit config branch.<current>.merge may name the upstream branch.for branch in main $(git branch --format='%(refname:short)' | grep -v "^$(git branch --show-current)$"); do
echo "$branch $(git merge-base HEAD $branch)"
done
Pick the branch whose merge-base commit is closest to HEAD (fewest commits between merge-base and HEAD). This correctly handles feature branches created from other feature branches.Push:
git push -u origin <current-branch>
Build title and description from commits:
git log <base>..HEAD --oneline for the commit listgit diff <base>..HEAD --stat for a file-level summaryfeat: add new data pipeline)Create the PR:
gh pr create --base <base-branch> --title "<title>" --body "$(cat <<'EOF'
## Summary
<2-3 sentence overview of what this PR does and why>
## Changes
<bullet list of key changes, grouped logically>
## Test plan
- [ ] Unit tests pass (`make unit-tests`)
- [ ] Integration tests pass (`make integration-tests`)
- [ ] Manual verification
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
Print the PR URL.
Push latest commits:
git push
Read current description: gh pr view --json body,number,title
Regenerate the description — rebuild the Summary and Changes sections from the full diff (git log <base>..HEAD --oneline and git diff <base>..HEAD --stat), but preserve any sections the user added manually (look for sections not in the original template). Update with gh pr edit <number> --body "...".
Print the PR URL.
Invoke the code-review:code-review skill to review the PR diff.
If the review finds issues worth fixing:
commit-commands:commit.If the review only has minor suggestions or style nits, mention them to the user but don't block on them.
Check status (poll, don't use --watch which can hang):
gh pr checks <number>
If checks are still pending, wait briefly and re-check (up to ~5 minutes). Use gh run list --branch <branch> --limit 1 --json databaseId,status,conclusion to monitor.
On failure, get logs and diagnose:
gh run view <run-id> --log-failed
Fix the issue, commit, push, and re-check. Repeat until CI passes or you've tried 3 times (then ask the user for guidance).
After CI passes, update the PR description if any fixes were made.
Report to the user:
git pull --rebase and let the user decide.