con un clic
ship-it
/ship-it - Commit, Push, and Create PR
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
/ship-it - Commit, Push, and Create PR
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Bootstraps a new project directory with base configuration files, MCP servers, API connections, and template skills from OutworkOS. Use when setting up a new project, initializing a workspace, or configuring MCP integrations for a new directory.
Gain-based weekly reflection. Looks backward at what moved forward across all projects, written as narrative prose. Modeled on The Gap and The Gain — measures progress against where you were, not where you wish you were.
Composes, drafts, and sends emails via Gmail. Enforces natural writing style (no em dashes, no AI tells), proper threading, and correct signature handling. Use whenever drafting, replying to, or sending any email.
"Produces a meeting prep briefing for upcoming calendar meetings by researching attendees, email history, past meetings, and company backgrounds. Use when the user asks to prepare for meetings, prep for tomorrow, review upcoming meetings, get ready for a meeting day, or asks 'what meetings do I have'. Also use when the user asks to research a specific meeting or contact before a call."
"Cross-project inbox scan — cleans noise, routes signals to projects, creates Todoist tasks for gaps, and ranks priorities by time block. Replaces /triage, /inbox-zero, and /sitrep."
Generates Spotify playlists using MCP spotify tools. Use when user wants to create a playlist based on mood, genre, similar artists, or any theme. Handles auth, track discovery, playlist creation, and adding tracks.
| name | ship-it |
| description | /ship-it - Commit, Push, and Create PR |
| argument-hint | [optional commit message] |
| disable-model-invocation | true |
Ship your completed work with proper commits, PR creation, and cleanup guidance.
/ship-it
No arguments - operates on current branch.
This command will STOP if:
main branchExecute these steps in order. STOP and report if any step fails.
current_branch=$(git branch --show-current)
If main:
"You're on the main branch. You should never commit directly to main." "Use
/start-work <issue>to create a feature branch first." STOP.
# Branch format: type/123-description
# Extract: 123
issue_number=$(git branch --show-current | grep -oE '[0-9]+' | head -1)
If no issue number found:
"Could not detect issue number from branch name." Ask user: "What issue number is this work for? (or 'none')"
Detect the project's build command. Check for:
package.json in the project root or common subdirectories — use npm run buildMakefile — use make build# Run from the project root (or appropriate app directory)
npm run build
If build fails:
"Build is failing. You must fix build errors before shipping." Show errors and STOP.
If build passes: Proceed.
If no build system found: Skip and note "No build step detected."
Detect the project's test command. Check for:
package.json with a test script — use npm testpytest.ini or pyproject.toml — use pytestnpm test 2>&1 | tail -30
Record results. Note: Some pre-existing test failures may be acceptable.
If NEW test failures (compared to baseline):
"Tests are failing. Review the failures:" Show failures Ask: "Are these pre-existing failures? [y/n]"
If no test system found: Skip and note "No test runner detected."
# Staged and unstaged changes
git status
# Full diff
git diff HEAD --stat
# Detailed diff for commit message
git diff HEAD
Present to user:
Changes to be committed:
[file list with status]
Summary:
[X] files changed
[Y] insertions(+)
[Z] deletions(-)
Analyze changes and draft conventional commit message.
Determine type from changes:
| Change Type | Commit Type |
|---|---|
| New feature | feat |
| Bug fix | fix |
| Documentation | docs |
| Refactoring | refactor |
| Tests only | test |
| Build/deps | build |
| Maintenance | chore |
Draft message format:
type(scope): description
[Body explaining what and why]
Closes #[issue-number]
Present to user for approval:
Proposed commit message:
---
feat(reminders): add email reminder scheduling
Implement scheduled email reminders for company update forms.
- Add reminder scheduler script
- Add template variable replacement
- Add Resend email integration
- Add GitHub Actions workflow for daily execution
Closes #198
Co-Authored-By: Claude <noreply@anthropic.com>
---
Proceed with this message? [yes/edit/cancel]
Wait for user confirmation. Do not proceed without explicit approval.
Determine if changelog entry is needed based on commit type:
| Commit Type | Changelog Action |
|---|---|
feat | Always generate entry |
fix (user-facing bug) | Generate entry |
fix (internal/dev bug) | Ask user |
refactor, chore, test, build, ci, docs | Skip (offer to add if user wants) |
If changelog entry IS needed:
Check for CHANGELOG.md in the project root. If it exists, read it to find the insertion point.
Determine insertion point:
Transform commit message to changelog entry using changelog-writer skill patterns:
Language transformation:
| Commit Style | Changelog Style |
|---|---|
| "add feature X" | "We've added Feature X..." |
| "implement Y" | "We've launched Y..." |
| "improve Z" | "We've improved Z..." |
| "fix bug in W" | "We've resolved an issue with W..." |
Apply security reframing if commit touches security:
Present changelog entry to user for approval.
If approved: Insert entry at correct position in CHANGELOG.md.
Check for a public changelog page (e.g., app/(marketing)/changelog/page.tsx or similar). If found, update its data structure to match.
If changelog entry is NOT needed:
"This commit type (
refactor/test/etc.) typically doesn't need a changelog entry." "Add changelog entry anyway? [yes/no]"
If user selects 'skip': Proceed without changelog update.
If CHANGELOG.md doesn't exist:
"No CHANGELOG.md found. Create one? [yes/no]" If yes, create with standard header and first entry.
# Stage all changes (includes CHANGELOG.md if updated)
git add -A
# Commit with approved message
git commit -m "$(cat <<'EOF'
[approved commit message here]
EOF
)"
git push -u origin $(git branch --show-current)
If push fails (e.g., remote exists):
git push --force-with-lease origin $(git branch --show-current)
Compose PR description:
## Summary
[2-3 bullet points from commit]
## Changes
[List of significant changes]
## Test Plan
- [ ] Build passes
- [ ] Tests pass
- [ ] Manual verification completed
## Related Issues
Closes #[issue-number]
Create PR:
gh pr create \
--title "type(scope): description" \
--body "[PR description]" \
--base main
============================================
PR CREATED SUCCESSFULLY
============================================
PR: #[pr-number]
URL: [pr-url]
Branch: [branch-name] → main
Status:
Build: [PASS/SKIPPED]
Tests: [X passing / SKIPPED]
Commit: [commit-hash]
Changelog: [Updated/Skipped]
============================================
POST-MERGE CLEANUP (DO THIS AFTER PR MERGES)
============================================
After the PR is merged, run these commands:
git checkout main
git pull origin main
git branch -d [branch-name]
Or run: /cleanup-branches
IMPORTANT: Do NOT continue work on this branch after merge.
If more work is needed, create a NEW branch.
============================================
| Error | Action |
|---|---|
| On main branch | STOP - must use feature branch |
| Build fails | STOP - must fix before shipping |
| No changes | STOP - nothing to commit |
| Push rejected | Try --force-with-lease, else report |
| PR creation fails | Show error, provide manual steps |
| CHANGELOG.md malformed | Show error, ask user to fix manually |
/start-work 198 # Begin: creates branch, establishes baseline
[... do your work ...]
[... verify it works ...]
/ship-it # End: commits, pushes, creates PR (with changelog)
[... PR is reviewed and merged via GitHub ...]
/cleanup-branches # Cleanup: deletes merged branches