{"id":"5927577f-dcde-49ab-a71d-f8543a28bc67","shortId":"2JpNaa","kind":"skill","title":"ship","tagline":"Commit and push changes with a pre-launch gate (validate-code + safe-repo) by default. Use when user asks to \"ship\", \"commit and push\", or requests committing and pushing changes. Don't use for creating pull requests or reviewing changes before committing.","description":"# Ship Changes\n\nShip runs a **pre-launch gate** before committing. By default: `validate-code` + `safe-repo`. The gate ensures nothing broken or unsafe leaves the working tree.\n\n## Pre-loaded context\n\n- Status: !`git status`\n- Diff: !`git diff HEAD`\n- Log: !`git log --oneline -10`\n\n## Arguments\n\n- `--fast` — skip the pre-launch gate. Use only for hotfixes or commits to disposable branches. State the reason in the commit message body.\n\n## Workflow\n\n### Phase 1 — Pre-launch gate (skipped if `--fast`)\n\n1. **Validate code**: invoke the [validate-code](../validate-code/SKILL.md) skill. Auto-fixes formatting, verifies types, runs tests.\n   - If `validate-code` returns FAIL → report errors, STOP. Do not commit or push.\n2. **Sensitive data scan**: invoke the [safe-repo](../safe-repo/SKILL.md) skill against the staged + unstaged diff only (not the whole repo).\n   - If sensitive data found → report findings, STOP. Do not commit or push.\n\n### Phase 2 — Commit\n\n3. Review all changes from status and diff\n4. Analyze recent commit style from log\n5. Group changed files by logical concern using [atomic-commits grouping rules](../atomic-commits/SKILL.md#grouping-rules)\n6. For each group: stage specific files by name, commit with HEREDOC format\n7. If all changes form one logical unit, stage files by name (never `git add -A` or `git add .`)\n\n### Phase 3 — Push\n\n8. Push: `git push` (current branch)\n9. Run `git status` after to verify\n\n## Rules\n\n- Pre-launch gate runs by default; only skip via `--fast` with a stated reason\n- Stage files by name, never `git add -A` or `git add .`\n- Group changes into atomic commits when they serve distinct purposes\n- Generate message from changed files, match repo style\n- NEVER push if pre-launch gate fails\n- NEVER force push (`-f` or `--force`)\n- NEVER skip hooks\n- NEVER commit secrets\n- Push to current branch only\n\n## Error Handling\n\n- If `validate-code` fails → report all errors, stop; do not commit or push\n- If `safe-repo` flags sensitive data → report findings, stop; do not commit or push\n- If `git push` is rejected (non-fast-forward) → run `git pull --rebase` then retry push once\n- If pre-commit hook fails → fix reported issues, re-stage, create a NEW commit (never `--amend`)\n- If `--fast` is used → log \"Pre-launch gate skipped via --fast\" in agent output for traceability\n\n## When to use `--fast`\n\nAcceptable cases:\n- Hotfix where the bug is worse than skipping the gate\n- Disposable branch (spike, prototype, ephemeral CI testing)\n- Pre-launch gate already passed manually in this session\n\nNot acceptable:\n- \"It's faster\" — gate exists precisely to catch issues before push\n- \"Tests are flaky\" — fix the flaky tests, don't skip the gate\n- Production releases — never skip the gate on main/release branches","tags":["ship","agent","skills","helderberto","agent-skills","ai-tools","antigravity","claude-code","cursor","developer-tools","gemini-cli","markdown"],"capabilities":["skill","source-helderberto","skill-ship","topic-agent-skills","topic-ai-tools","topic-antigravity","topic-claude-code","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-markdown","topic-plugin","topic-sdlc","topic-skills","topic-tracer-bullet"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/helderberto/agent-skills/ship","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add helderberto/agent-skills","source_repo":"https://github.com/helderberto/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (2,764 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:09:14.802Z","embedding":null,"createdAt":"2026-05-18T13:14:55.046Z","updatedAt":"2026-05-18T19:09:14.802Z","lastSeenAt":"2026-05-18T19:09:14.802Z","tsv":"'-10':92 '/atomic-commits/skill.md':224 '/safe-repo/skill.md':169 '/validate-code/skill.md':136 '1':120,128 '2':160,194 '3':196,261 '4':204 '5':211 '6':228 '7':241 '8':263 '9':269 'accept':433,463 'add':255,259,298,302 'agent':425 'alreadi':456 'amend':411 'analyz':205 'argument':93 'ask':23 'atom':220,306 'atomic-commit':219 'auto':139 'auto-fix':138 'bodi':117 'branch':109,268,344,446,495 'broken':70 'bug':438 'case':434 'catch':471 'chang':5,34,44,48,199,213,244,304,316 'ci':450 'code':14,62,130,135,149,351 'commit':2,26,31,46,57,106,115,157,190,195,207,221,237,307,339,359,374,397,409 'concern':217 'context':80 'creat':39,406 'current':267,343 'data':162,183,368 'default':19,59,283 'diff':84,86,175,203 'dispos':108,445 'distinct':311 'ensur':68 'ephemer':449 'error':153,346,355 'exist':468 'f':332 'fail':151,328,352,399 'fast':94,127,287,384,413,423,432 'faster':466 'file':214,234,250,293,317 'find':186,370 'fix':140,400,478 'flag':366 'flaki':477,480 'forc':330,334 'form':245 'format':141,240 'forward':385 'found':184 'gate':11,55,67,100,124,280,327,420,444,455,467,486,492 'generat':313 'git':82,85,89,254,258,265,271,297,301,378,387 'group':212,222,226,231,303 'grouping-rul':225 'handl':347 'head':87 'heredoc':239 'hook':337,398 'hotfix':104,435 'invok':131,164 'issu':402,472 'launch':10,54,99,123,279,326,419,454 'leav':73 'load':79 'log':88,90,210,416 'logic':216,247 'main/release':494 'manual':458 'match':318 'messag':116,314 'name':236,252,295 'never':253,296,321,329,335,338,410,489 'new':408 'non':383 'non-fast-forward':382 'noth':69 'one':246 'onelin':91 'output':426 'pass':457 'phase':119,193,260 'pre':9,53,78,98,122,278,325,396,418,453 'pre-commit':395 'pre-launch':8,52,97,121,277,324,417,452 'pre-load':77 'precis':469 'product':487 'prototyp':448 'pull':40,388 'purpos':312 'push':4,28,33,159,192,262,264,266,322,331,341,361,376,379,392,474 're':404 're-stag':403 'reason':112,291 'rebas':389 'recent':206 'reject':381 'releas':488 'repo':17,65,168,180,319,365 'report':152,185,353,369,401 'request':30,41 'retri':391 'return':150 'review':43,197 'rule':223,227,276 'run':50,144,270,281,386 'safe':16,64,167,364 'safe-repo':15,63,166,363 'scan':163 'secret':340 'sensit':161,182,367 'serv':310 'session':461 'ship':1,25,47,49 'skill':137,170 'skill-ship' 'skip':95,125,285,336,421,442,484,490 'source-helderberto' 'specif':233 'spike':447 'stage':173,232,249,292,405 'state':110,290 'status':81,83,201,272 'stop':154,187,356,371 'style':208,320 'test':145,451,475,481 'topic-agent-skills' 'topic-ai-tools' 'topic-antigravity' 'topic-claude-code' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-markdown' 'topic-plugin' 'topic-sdlc' 'topic-skills' 'topic-tracer-bullet' 'traceabl':428 'tree':76 'type':143 'unit':248 'unsaf':72 'unstag':174 'use':20,37,101,218,415,431 'user':22 'valid':13,61,129,134,148,350 'validate-cod':12,60,133,147,349 'verifi':142,275 'via':286,422 'whole':179 'work':75 'workflow':118 'wors':440","prices":[{"id":"c6055d73-1da1-416e-b876-0cf72cf81189","listingId":"5927577f-dcde-49ab-a71d-f8543a28bc67","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"helderberto","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:14:55.046Z"}],"sources":[{"listingId":"5927577f-dcde-49ab-a71d-f8543a28bc67","source":"github","sourceId":"helderberto/agent-skills/ship","sourceUrl":"https://github.com/helderberto/agent-skills/tree/main/skills/ship","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:55.046Z","lastSeenAt":"2026-05-18T19:09:14.802Z"}],"details":{"listingId":"5927577f-dcde-49ab-a71d-f8543a28bc67","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"helderberto","slug":"ship","github":{"repo":"helderberto/agent-skills","stars":8,"topics":["agent-skills","ai","ai-tools","antigravity","claude-code","cursor","developer-tools","gemini-cli","markdown","plugin","sdlc","skills","tracer-bullet"],"license":"mit","html_url":"https://github.com/helderberto/agent-skills","pushed_at":"2026-05-14T11:37:47Z","description":"My personal SDLC toolbelt for AI coding agents — PRD to ship.","skill_md_sha":"0e7fbf10e4efa4aee302a5b92a1143cf20d9be36","skill_md_path":"skills/ship/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/helderberto/agent-skills/tree/main/skills/ship"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"ship","description":"Commit and push changes with a pre-launch gate (validate-code + safe-repo) by default. Use when user asks to \"ship\", \"commit and push\", or requests committing and pushing changes. Don't use for creating pull requests or reviewing changes before committing."},"skills_sh_url":"https://skills.sh/helderberto/agent-skills/ship"},"updatedAt":"2026-05-18T19:09:14.802Z"}}