ship · git:20260906.5003aa5 · 2026-09-06 · sha256 a169bc093e014da6
ship git:20260906.5003aa5A
Immutable. This exact content is served forever at /api/v1/blob/a169bc093e014da6.
--- name: ship description: End-to-end ship workflow — commit, push, deploy to Vercel, and save a project note. Runs after a build session to handle all the boring stuff. argument-hint: [optional commit message] user-invocable: true allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent --- # Ship It Post-build skill that handles commit → push → deploy → notes in one shot. No more asking for each step. ## When to use After finishing a build session — new feature, bug fix, new tool, client deliverable. Replaces the manual "ok commit this, push it, deploy it, remember it" sequence. ## Process ### Step 1: Assess what changed Run `git status` and `git diff --stat` in the current project directory. Identify: - Which files changed - Whether this is a new project or update to existing - Whether there are sensitive files (.env, credentials) — exclude those If there are no changes, say so and stop. ### Step 2: Commit - Stage relevant files (NOT node_modules, .env, .DS_Store, credentials) - If the user provided a commit message in the argument, use it - If not, write a concise commit message based on the diff (1-2 sentences, focus on "why") - Append the commit attribution trailer the harness supplies (do not hardcode a model name) - Commit. If pre-commit hook fails, fix and retry. ### Step 3: Push - Check if branch tracks a remote. If not, push with `-u origin <branch>` - Push to remote ### Step 4: Deploy to Vercel Check if this is a Vercel project: ```bash ls vercel.json .vercel/project.json 2>/dev/null ``` If yes: - Run `vercel --prod` for production deploy (default) - Wait for deploy to complete - Report the URL If no Vercel config exists, skip this step and mention it. ### Step 5: Save a project note Keep a short record so the next session (yours or Claude's) knows what shipped. Use whichever the project already has, in this order: - Claude Code auto-memory, if it is enabled in this session (the harness tells you the memory directory): update or create a `project_<name>.md` entry - Otherwise `CLAUDE.md` in the project root: add or update a "Deployed" line with the URL and date - Otherwise a `SHIPLOG.md` in the project root: append one line — date, commit hash, one-sentence summary, deploy URL Record: what the project does (1-2 sentences), tech stack, deploy URL, date shipped. ### Step 6: Summary Report: ``` Shipped: - Commit: <hash> — <message> - Push: <branch> → origin - Deploy: <url> (or "skipped — no Vercel config") - Note: <created/updated> <filename> ``` ## Important - Never commit .env files, API keys, or node_modules - If `git status` shows nothing to commit, just say "nothing to ship" and stop - Don't amend previous commits — always create new ones - If deploy fails, still complete the other steps and report the error - Keep commit messages concise — the diff tells the story