Ship check
Drop-in skills and plugins for your AI development workflows
npx -y skills add hiteshbandhu/skills-i-use --skill ship-checkAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Pre-ship gate before commit or push — runs lint, typecheck, tests, build, secret scan, and git diff review, then outputs a READY/BLOCKED verdict with a proposed commit message. Never commits without explicit user confirmation. Triggers on "ship check", "ready to commit", "pre-push check", "commit and push", "ship this", "can I push".
SKILL.md
4.0 KB, 927 tokens by cl100k_base, as published. Nobody here has run it
Ship Check — Pre-Ship Gate
Run automated checks + human-readable diff review before any commit or push. Never commit or push unless the user explicitly confirms after seeing the report.
Works with any coding agent with shell access.
Supporting files:
- checklist.md — manual gate items
- report-template.md — output format
- scripts/ship-check.sh — automated checks
Scripts: read scripts/ship-check.sh before running. It executes project lint/test/build
commands — review what it will run in this repo. Double-check every time.
Output: {SKILL_OUTPUT_DIR}/ship-check/ — see ../OUTPUT.md
Step 0 — Scope
Infer or ask:
| Setting | Default |
|---|---|
| Skip build | no — unless user says "skip build" |
| Skip tests | no — unless user says "skip tests" or "quick check" |
| Commit after | only if user confirms after report |
| Push after | only if user explicitly asks after commit succeeds |
Step 1 — Collect State
Run in parallel where possible:
git status
git diff
git diff --cached
git branch --show-current
git log -3 --oneline
Then run automated checks:
bash scripts/ship-check.sh
# Optional: SHIP_CHECK_STRICT=1 bash scripts/ship-check.sh
# Flags: --skip-build --skip-tests
If scripts/ship-check.sh is not in cwd, locate it from the skill folder or run
equivalent checks manually per checklist.md.
Review script output: lines prefixed PASS|, WARN|, FAIL|, DIFF_STAT|, SUMMARY|.
Step 2 — Diff Review
Read checklist.md. Manually inspect the diff for:
- Scope creep unrelated to the task
- Secrets, tokens,
.envfiles - Debug logging left behind
- Breaking changes without migration notes
Assign verdict:
| Verdict | When |
|---|---|
| BLOCKED | Any `FAIL |
| READY WITH WARNINGS | Warnings only, or user waived a check |
| READY | All checks pass, diff looks intentional |
Step 3 — Draft Commit Message
Analyze the full diff. Match the repo's existing commit style (git log -5).
Use conventional commits unless the repo uses something else. Focus on why, not just what.
Step 4 — Write Report
Fill report-template.md.
Path: {output_dir}/ship-check-YYYY-MM-DD-HHMM.md
Update {output_dir}/index.md:
# Ship Checks
| When | Branch | Verdict | Report |
|------|--------|---------|--------|
Append newest first.
Step 5 — Present to User
- Verdict in one line (READY / READY WITH WARNINGS / BLOCKED)
- Blockers and warnings (if any)
- Proposed commit message in a copy-paste block
- Path to saved report
- Ask: "Commit?" — only proceed on yes
- Ask: "Push?" — only if user wants push, and only after successful commit
If BLOCKED, list fixes needed. Do not commit.
Edge Cases
- Clean working tree — report READY with note "nothing to commit"
- Staged + unstaged mix — show both diffs; ask what to include
- Monorepo — run checks from correct package directory or root per project convention
- No package.json — rely on checklist + git review; skip Node checks
- User says "commit anyway" on BLOCKED — warn once, then follow explicit override
- Pre-commit hook fails — fix issue, re-run ship-check, new report (never amend unless user rules allow)
Invocation Examples
ship check
ready to commit?
pre-push check
commit and push ← runs gate first; commit/push only after confirmation
quick ship check — skip tests
ship this branch