ship
Use when work is verified and ready to leave the machine — branch/PR/merge/deploy/smoke-check.
Skill by AbdurRafay2004
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/abdurrafay2004-ship
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops, cloud
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ship
What's inside
- Skill name
ship- Description
- Use when work is verified and ready to leave the machine — branch/PR/merge/deploy/smoke-check. Triggers on "ship it", "deploy", "merge the PR", "push this", "release", "go live", "cutover". Covers git hygiene, PR and merge discipline, deploy-target detection (Cloudflare Workers/Pages via wrangler, Vercel, Convex, Supabase), post-deploy smoke checks, and the T3 launch runbook with rollback criteria.
- License
- MIT
- Instructions
- 207 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (2)
- SKILL.md
- launch-runbook.md · references/
SKILL.md (first lines)
# Ship Part of the **Ship** phase — see the `workflow` skill for tiers and sequencing. Shipping is the phase where mistakes become public and expensive. The rule that governs everything below: **every ship step ends with evidence a non-coding PM can judge** — a PR URL, green CI, a deploy URL, smoke-check output, a screenshot. Never "deployed, should be fine." Show the thing. ## Tier scaling | Tier | Ship process | Evidence at the end | |---|---|---| | **T1** | branch → commit → PR → merge. Deploy only if the change is user-visible or the user asks. | PR URL + green CI | | **T2** | T1 + deploy + single-pass smoke check on the live URL. | Deploy URL + smoke output | | **T3** (money/auth/data/migrations) | Full runbook: **rollback criteria written BEFORE deploying**, staged rollout, post-deploy monitoring, T+24h check. See [references/launch-runbook.md](references/launch-runbook.md). | Runbook with each gate checked + live evidence | Never enter Ship without a passing Verify phase (`verify-done`). Shipping does not re-litigate verification — but it does re-run it when code changes (below). ## Git hygiene - **Never `git add -A` or `git add .`.** Stage only the files you changed for this task, by explicit path. Unrelated dirt in the working tree stays out of your commit — it belongs to another change or to nobody. - **Bisectable commits.** Group the diff into logical units, one coherent change per commit (not one file per commit). Order so dependencies land first: 1. Infrastructure: config, migrations, route/schema additions 2. Data layer and services (with their tests) 3. UI: components, pages, styles (with their tests) 4. Docs/changelog last A module and its test file travel in the same commit. Each commit must be independently valid — no broken imports, no references to code that doesn't exist yet. Small diffs (<50 lines across <4 files) can be a single commit. - **Every commit revertible.** `git revert <sha>` on any single commit should cleanly undo one logical change. If a schema change and dependent code can't be reverted independently, note that in the commit body — it changes the rollback plan. - **Never force push.** Never rewrite pushed history. Plain `git push` only. Sole exception: scrubbing a leaked secret from history (see `security`), with the user's explicit approval — rotate the secret first. ## PR / merge discipline **Merge the base branch BEFORE the final test run.** Tests must run against the merged state, not your stale branch: ```sh git fetch origin <base> && git merge origin/<base> --no-edit ``` Auto-resolve only trivial conflicts (lockfiles, changelog ordering). Anything ambiguous: stop and use the `resolving-merge-conflicts` skill (installed separately) — never guess a conflict resolution. **Verification gate — no completion claims without fresh verification evidence.** If ANY code changed after the last test run (review fixes, conflict resolution), re-run the tests and paste fresh output. "Should work now" → run it. "I'm confident" → confidence is not evidence. "I tested earlier" → code changed since then. Stale output is not acceptable; trivial changes break production too. **Readiness gate (before merge):** - Failing tests or failing CI → **blocker**. Never merge red. - Merge conflicts (`gh pr view --json mergeable`) → blocker until resolved. - Stale durable state → **warning, not blocker**: if the diff adds features but `.handoff/STATUS.md` / `CHANGELOG.md` weren't touched, flag it and offer to update before merging. - PR body accuracy: compare the body against `git log <base>..HEAD --oneline`. A PR body describing last week's version of the change is a warning — fix it, the PM reads the PR body, not the diff. **Post-fail invariant — after ANY non-zero exit from `gh pr merge`, query PR state before doing anything else. Never blind-retry the merge:** ```sh gh pr view --json state,mergeCommit,autoMergeRequest,mergedAt ``` - `state == MERGED` → the server-side merge actually succeeded (or a concurrent merge landed). Say "PR is merged on GitHub", capture the merge SHA, move on. - `state == OPEN` and `autoMergeRequest` non-null → merge queue / auto-merge is processing. Expected — poll `gh pr view --json state` (30s interval), don't re-merge. - `state == OPEN` and `autoMergeRequest` null → genuine failure. Surface the merge stderr AND the current PR state, then stop for the user. - `state == CLOSED` → closed without merging. Stop. Hard rule: never call `gh pr merge` a second time after a failure. Server state is authoritative; a blind retry can double-merge or mask what happened. ## Deploy-target detection Detect the target from config files in the repo root. **Order matters: data layer deploys before the frontend that depends on it.** ```sh ls convex 2>/dev/null && echo "TARGET:convex" ls supabase/migrations 2>/dev/null && echo "TARGET:supabase-migrations" ls wrangler.jsonc wrangler.toml 2>/dev/null && echo "TARGET:cloudflare" (ls vercel.json 2>/dev/null || ls -d .vercel 2>/dev/null) && echo "TARGET:vercel" ``` **Convex (`convex/` dir)** — deploy BEFORE the frontend deploy: `npx convex deploy`. Schema and function changes must be live before the frontend that calls them. A Convex schema change is a migration → **this is T3** (reverting frontend code does not revert the schema; plan the down path first). **Supabase (`supabase/migrations/`)** — review every pending migration file before pushing, then `supabase db push` (or apply via the Supabase MCP tools). Database migrations are **always T3**: irreversible-by-default, so the rollback plan (down migration or backup/restore) is written before pushing. **Cloudflare Workers/Pages (`wrangler.jsonc` / `wrangler.toml`)** — `wrangler deploy` (Workers) or `wrangler pages deploy` (Pages). For a T3 gradual rollout on Workers: `wrangler versions upload` then `wrangler versions deploy` to split traffic by percentage between old and new. Rollback: `wrangler rollback` (Workers) or re-deploy the previous version. **Vercel (`vercel.json` / `.vercel/`)** — two modes; check which this repo uses:
From AbdurRafay2004/handoff, MIT.
More from AbdurRafay2004/handoff
- 0.614score
verify-done
AbdurRafay2004
Use when about to claim work is complete, fixed, or passing — before committing, opening a PR, or telling the user it works.
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
security
AbdurRafay2004
Use for a full security audit — T3 verify gate (money, auth, user data, migrations), pre-launch check, or when the user asks to audit the codebase for…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
workflow
AbdurRafay2004
The operating pipeline for all development work — 6 phases (Brief, Plan, Build, Verify, Ship, Learn) with risk tiers that decide how much process a task gets.
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
brief
AbdurRafay2004
Use when starting a new feature or product request — clarifies scope and decisions before implementation.
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
browser-qa
AbdurRafay2004
Use to exercise the running app in a real browser — after UI changes, before ship, or when the user asks to QA the site, smoke-test a branch, or check "does…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
setup
AbdurRafay2004
Scaffold the handoff project-memory system into THIS repository (new or existing) — copies the template tree into .handoff/, then runs a guided discovery pass…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
plan
AbdurRafay2004
Use when a task is T2/T3 — before building a feature that spans multiple files or carries risk.
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
delegate
AbdurRafay2004
Use when a task would flood the main context window — broad searches, verbose test/build output, 2+ independent parallel tasks, or an isolated large workstream.
SkillAFreshness: A★ 4Claude Code +9 - 0.524score
design
AbdurRafay2004
Use when designing or improving a module's interface, deciding where a seam goes, making code more testable or navigable, or pinning down domain terminology.
SkillCFreshness: C★ 4Claude Code +9 - 0.524score
tdd
AbdurRafay2004
Use when building any T3 feature or bugfix, recommended for T2 on the affected path — write the failing test before the implementation, one behavior at a…
SkillCFreshness: C★ 4Claude Code +9 - 0.519score
learn
AbdurRafay2004
Use at the end of T3 work, after an incident/rollback, or when the user asks for a retro — turns what happened into recorded learnings that live in the repo…
SkillCFreshness: C★ 4Claude Code +9 - 0.519score
architecture
AbdurRafay2004
Scan the codebase for architectural friction and propose deepening opportunities as candidate cards, then interrogate the chosen one into a decision.
SkillCFreshness: C★ 4Claude Code +9
Signals
- Stars
- 4
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 8, 2026 (21 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/AbdurRafay2004/handoff
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from AbdurRafay2004
- 0.614score
verify-done
AbdurRafay2004
Use when about to claim work is complete, fixed, or passing — before committing, opening a PR, or telling the user it works.
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
security
AbdurRafay2004
Use for a full security audit — T3 verify gate (money, auth, user data, migrations), pre-launch check, or when the user asks to audit the codebase for…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
brief
AbdurRafay2004
Use when starting a new feature or product request — clarifies scope and decisions before implementation.
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
workflow
AbdurRafay2004
The operating pipeline for all development work — 6 phases (Brief, Plan, Build, Verify, Ship, Learn) with risk tiers that decide how much process a task gets.
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
browser-qa
AbdurRafay2004
Use to exercise the running app in a real browser — after UI changes, before ship, or when the user asks to QA the site, smoke-test a branch, or check "does…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
delegate
AbdurRafay2004
Use when a task would flood the main context window — broad searches, verbose test/build output, 2+ independent parallel tasks, or an isolated large workstream.
SkillAFreshness: A★ 4Claude Code +9
Cite this page
ship skill. Agent Mart. https://agentmart.dev/skills/abdurrafay2004-ship (last updated 2026-10-24)