Branch completion — pre-ship checks, 4-option choice (merge, PR, keep, discard), cleanup
Completes feature branches with pre-ship checks and options to merge, create a PR, keep, or discard.
npx claudepluginhub jugrajsingh/skillgardenThis skill is limited to using the following tools:
Complete the current branch with pre-ship checks and one of four completion options.
$ARGUMENTS = optional action: merge, pr, keep, or discard.
If $ARGUMENTS is empty, present all 4 options after pre-ship checks.
Run these checks and report results:
1. Uncommitted changes:
git status --short
Record: clean or list of uncommitted files.
2. Test suite: Run the project's test suite (detect runner from project files: pytest, npm test, cargo test, go test). Record: pass/fail with counts.
3. Review status: Check for review report matching current branch:
git branch --show-current
Then check docs/reviews/ for a matching review file. Record: reviewed or not reviewed.
4. Current branch:
git branch --show-current
Verify we are on a feature, bugfix, release, or hotfix branch. If on main or develop, warn: "Cannot ship from {branch}. Switch to a feature branch first."
Report check results:
## Pre-Ship Checks
| Check | Status |
|-------|--------|
| Uncommitted changes | {clean / N files} |
| Test suite | {pass / fail} |
| Code review | {reviewed / not reviewed} |
| Branch | {branch_name} |
If uncommitted changes exist or tests fail:
If $ARGUMENTS specified an action, use it directly.
Otherwise, present options via AskUserQuestion:
Load the gitmastery:finish skill
After merge completes, check if remote tracking exists:
git rev-parse --abbrev-ref --symbolic-full-name @{upstream} 2>/dev/null
If remote tracking exists, push the parent branch:
git push origin {parent_branch}
Report: "Branch merged to {parent_branch} and pushed."
Push the branch to remote:
git push -u origin {branch_name}
Load the shipit:describing-pr skill for PR description generation and creation
Report the PR URL when complete
Report:
Branch {branch_name} kept.
Resume options:
- /shipit:execute {slug} — continue executing tasks
- /shipit:ship — return to shipping options
No changes made. Branch stays as-is.
Require explicit confirmation via AskUserQuestion: "Type the branch name to confirm deletion: {branch_name}"
Verify the typed name matches the current branch exactly. If it does not match:
Switch to develop:
git checkout develop
Delete the branch:
git branch -D {branch_name}
If a remote branch exists, delete it:
git push origin --delete {branch_name} 2>/dev/null
Report: "Branch {branch_name} deleted locally and remotely."
For merge, PR, and discard actions:
Check if a worktree exists for this branch:
git worktree list
If a worktree is found for the branch:
git worktree remove {worktree_path}
Report final state:
## Ship Complete
Action: {merge/pr/keep/discard}
Branch: {branch_name}
Result: {description of what happened}
Current branch: {where we are now}
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.