From shipit
Use when a feature branch is complete and ready to be merged, PRed, kept, or discarded
npx claudepluginhub jugrajsingh/skillgarden --plugin shipitThis skill is limited to using the following tools:
Complete the current branch with pre-ship checks and one of four completion options.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
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}