{"name":"review-and-ship-work","description":"Self-check work before it goes out - diff against the detected base branch, run or add focused tests, review for bugs, regressions, security and intent, fix the critical issues, commit only the related files, then push and open or update the pull request after you confirm. Use when work is ready to ship, or the user says check my work, commit it and send it for review.","category":"debugging","tags":["workflow","git","verification"],"models":["any"],"proven":false,"passing_families":0,"model_testing":"Not yet model-tested; testing Jan 2027","url":"https://theskillvault.ai/skills/review-and-ship-work","api_url":"https://theskillvault.ai/api/skills/review-and-ship-work","raw_url":"https://theskillvault.ai/api/skills/review-and-ship-work/raw","body":"# Review and ship your work\n\nBefore anyone else sees your branch, check it yourself. This skill diffs the branch, tests what changed, fixes the real problems, and makes a focused commit. It then opens the PR, but only after you confirm.\n\n## When to use\n- Your feature works locally and you are about to open a pull request.\n- An AI agent finished a task, and you want it checked and committed cleanly.\n- You want one routine for \"is this ready\" instead of several separate checks.\n\n## When not to use\n- The PR is already open and CI or reviewers need answering. Use fix-ci-until-green.\n- You only need proof that a claim is true. Use test-before-claiming-done.\n- You need the PR text written. Use write-pull-request-description-prompt after this.\n\n## Steps\n1. Find the base branch, never assume main: `gh pr view --json baseRefName -q .baseRefName`, or else `git symbolic-ref --short refs/remotes/origin/HEAD`.\n2. Gather the change: `git fetch origin <base>`, `git diff origin/<base>...HEAD`, `git status` and `git log origin/<base>..HEAD --oneline`.\n3. Run the tests that cover the changed behaviour. If none exist, add a focused test or write the gap down.\n4. Review the diff for correctness, regressions, security and fit with the goal. On a large diff, split it among parallel subagents by area.\n5. Sort findings into critical, warning and note. Fix the critical ones, then re-run the affected tests.\n6. Stage only the files that belong to this change (`git add <paths>`), and commit with a short message.\n7. Show the summary and ask before pushing. Then `git push -u origin HEAD`, and open or update the PR with `gh pr create` or `gh pr edit`.\n8. Check readiness with `gh pr checks`, and report.\n\n## Gotchas\n- A hardcoded `origin/main` gives a wrong diff on release or stacked branches. Detect the base first.\n- Never bypass failing pre-commit hooks with `--no-verify`. Fix the cause.\n- Keep unrelated edits out of the commit. Stash them or put them on another branch.\n- Check the diff for secrets, `.env` files and debug logs before committing.\n- Style comments come last. Correctness, security and regressions come first.\n\n## Portability\nWorks in any git repo and language. Without gh, open the PR in your host's web UI or CLI, such as glab for GitLab. Without subagents, review the diff area by area yourself.\n\n## Done when\n- Tests for the changed behaviour ran and passed, or the gap is written down.\n- No critical finding is left open.\n- The commit holds only related files, and the PR is open or updated after your go-ahead.\n- You have a report: findings, tests run with results, and the PR link.\n\n## Example prompt\n\"Review my branch and ship it. Diff against the real base branch, run the tests for what changed, fix anything critical, commit only these changes and ask me before you push.\"\n\n---\nAdapted from \"review-and-ship\" in cursor/plugins (cursor-team-kit) (Copyright (c) 2026 Cursor, MIT). Original: https://github.com/cursor/plugins/blob/ae5650febf4320793844c12c4adaa937f417f8da/cursor-team-kit/skills/review-and-ship/SKILL.md. Changes by TheSkillVault are listed in the metadata above. See LICENSE.txt.","files":["LICENSE.txt"],"license":"MIT","license_name":"MIT License","license_url":"https://opensource.org/license/mit","attribution":"Based on work by Eric Zakariasson (ericzakariasson), Cursor team kit plugin in cursor/plugins (Copyright (c) 2026 Cursor, MIT License), https://github.com/cursor/plugins/blob/ae5650febf4320793844c12c4adaa937f417f8da/cursor-team-kit/skills/review-and-ship/SKILL.md; adapted by TheSkillVault, https://theskillvault.ai","install":{"claude_code":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/review-and-ship-work/raw' -o ~/'.claude/skills/review-and-ship-work/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/review-and-ship-work/files/LICENSE.txt' -o ~/'.claude/skills/review-and-ship-work/LICENSE.txt'","cursor":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/review-and-ship-work/raw' -o '.cursor/skills/review-and-ship-work/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/review-and-ship-work/files/LICENSE.txt' -o '.cursor/skills/review-and-ship-work/LICENSE.txt'","agents":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/review-and-ship-work/raw' -o '.agents/skills/review-and-ship-work/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/review-and-ship-work/files/LICENSE.txt' -o '.agents/skills/review-and-ship-work/LICENSE.txt'","mcp_url":"https://theskillvault.ai/mcp","cursor_mcp_deeplink":"cursor://anysphere.cursor-deeplink/mcp/install?name=theskillvault&config=eyJ1cmwiOiJodHRwczovL3RoZXNraWxsdmF1bHQuYWkvbWNwIn0%3D","mcp_config":{"mcpServers":{"theskillvault":{"url":"https://theskillvault.ai/mcp"}}}},"bundles":[],"tested_on":[{"family":"chatgpt","name":"ChatGPT","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"claude","name":"Claude","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"gemini","name":"Gemini","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"grok","name":"Grok","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"llama","name":"Llama","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"deepseek","name":"DeepSeek","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"mistral","name":"Mistral","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"qwen","name":"Qwen","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"kimi","name":"Kimi K","outcome":null,"date":null,"source":null,"counts":false,"stale":false}],"proven_rule":{"threshold":5,"window_days":365,"computed_at":"2026-11-04T08:00:56.504Z"}}