Skip to content
Back to skills

Ship

ASecurity

Universal shipping workflow: 8-phase linear pipeline from verification to deploy. Reads type-checklists.md to select the right checklist for the artifact type. The ONLY pause is Phase 7 (user confirmation before irreversible deploy/publish). TRIGGER when: user wants to ship, release, publish, or deploy something; user asks "is this ready to ship?"; user wants a pre-release checklist; user wants to publish a package, CLI, API, web app, ML model, skill, docs site, infrastructure, or research pa...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 2, 2026
ai-agentspythongobashnodedockerawsgcpterraformgitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add wjgoarxiv/litclaude --skill ship --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ship?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ship
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wjgoarxiv-ship-litclaude/badge)](https://www.skillsdirectory.com/skills/wjgoarxiv-ship-litclaude)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: autoresearch:ship
description: |
  Universal shipping workflow: 8-phase linear pipeline from verification to deploy.
  Reads type-checklists.md to select the right checklist for the artifact type.
  The ONLY pause is Phase 7 (user confirmation before irreversible deploy/publish).
  TRIGGER when: user wants to ship, release, publish, or deploy something; user asks
  "is this ready to ship?"; user wants a pre-release checklist; user wants to publish
  a package, CLI, API, web app, ML model, skill, docs site, infrastructure, or research
  paper; user invokes /autoresearch:ship.
  DO NOT TRIGGER when: user wants iterative development (use autoresearch); user wants
  to debug errors (use autoresearch:fix); user just wants a code review.
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - WebFetch
  - WebSearch
---

# autoresearch:ship

Universal 8-phase shipping pipeline. Runs automatically through phases 1–6, pauses exactly
once at phase 7 for irreversible-action confirmation, then executes phase 8. Outputs
`ship-log.md` tracking every checklist item.

## Autonomy Directive

**You are an autonomous shipping agent.** Once the pipeline begins:

1. **Run phases 1–6 without stopping.** They are automated and reversible.
2. **Phase 7 is the ONLY pause point.** You MUST stop and wait for explicit user approval before proceeding to phase 8.
3. **Never skip phase 7.** Deploy/publish is irreversible. No exceptions.
4. **After phase 8, close the pipeline immediately** — do not run additional phases.

---

## Setup

### Step 1 — Identify artifact type
Ask if not provided: "What are you shipping? Choose one:
(1) library/package, (2) CLI tool, (3) REST API, (4) web app,
(5) ML model/dataset, (6) skill/prompt, (7) documentation site,
(8) infrastructure (IaC), (9) research paper/report"

Load the corresponding checklist from `skills/ship/type-checklists.md`.

### Step 2 — Identify deploy target
Ask if not provided: "Where does this deploy? (e.g., PyPI, npm, GitHub Releases, Vercel,
AWS, HuggingFace, arXiv...)"

### Step 3 — Initialize ship-log.md
Write `ship-log.md` to the working directory with the artifact type, deploy target, and
timestamp. All 8 phases will be appended as they execute.

---

## The 8-Phase Pipeline

### Phase 1 — Verify Completeness
Check that all required files exist and no critical placeholders remain:
- Core source files present
- No `TODO`, `FIXME`, `PLACEHOLDER`, or `TBD` in production code paths
- Required config files present (e.g., `pyproject.toml`, `package.json`, `Dockerfile`)
- All checklist items from type-checklists.md for this type are present

Log each check as `PASS` or `FAIL` in `ship-log.md`. A single `FAIL` here is a blocker —
fix it before proceeding to phase 2.

### Phase 2 — Run Full Test Suite
Execute the test suite. Wrap with `timeout 10m <test_command>`.
- All tests must pass. Zero failures, zero errors.
- Flaky tests that fail must be investigated — not skipped.
- If no test suite exists: log `WARNING — no tests found`. Continue, but flag in ship-log.md.

Log: total tests, pass count, fail count, duration.

### Phase 3 — Security Scan
Run available security tooling:
- Python: `pip audit` or `safety check`
- Node.js: `npm audit`
- Docker: `docker scan` or `trivy`
- General: check for hardcoded secrets (grep for `password =`, `api_key =`, `secret =`, `token =`)

Log any HIGH or CRITICAL findings as blockers. MEDIUM findings are warnings — ship-log.md
notes them but does not block.

### Phase 4 — Documentation Check
Verify that documentation is complete and accurate for the artifact type:
- README exists with install + quickstart section
- CHANGELOG updated for this release
- All public APIs/functions have docstrings or type annotations
- Examples in README are runnable (spot-check one)

Log each check. Missing CHANGELOG or README blocks the pipeline.

### Phase 5 — Version Bump
Confirm the version number is correct and consistent across all version-bearing files:
- Identify all files that carry a version number (e.g., `pyproject.toml`, `package.json`,
  `__init__.py`, `CHANGELOG.md`, `Cargo.toml`)
- Verify all files show the same version
- Confirm the version follows semver (MAJOR.MINOR.PATCH) or the project's convention
- If versions are inconsistent: fix them, log the change

Do NOT auto-bump the version without asking. Ask: "The current version is X. Is this correct,
or should it be bumped?"

### Phase 6 — Build/Package
Execute the build or packaging step for the artifact type:
- Python: `python -m build` or `poetry build`
- Node.js: `npm pack` or `npm run build`
- Docker: `docker build -t [name]:[version] .`
- Docs: `mkdocs build` or `npm run docs`
- IaC: `terraform plan` or `cdk synth`
- Other: run the project's documented build command

Wrap with `timeout 15m <build_command>`. Exit 124 = timeout → report and stop.
Log: build command, exit code, output size, any warnings.

### Phase 7 — CONFIRM (mandatory pause)

**STOP. Do not proceed until the user explicitly approves.**

Present a pre-deploy summary:
```
== READY TO SHIP ==
Artifact:    [type] — [name]
Version:     [version]
Deploy to:   [target]
Test suite:  [N tests passed]
Security:    [N warnings, 0 blockers]
Build:       [status]

Checklist complete: [N/N items passed]

IRREVERSIBLE ACTION: Proceeding will publish/deploy to [target].
This cannot be undone automatically.

Type "SHIP IT" to proceed, or describe any changes needed.
```

Wait for explicit "SHIP IT" (case-insensitive). Any other response → address the concern,
re-run relevant phases, return to Phase 7. Do NOT proceed on vague approval ("ok", "sure",
"yes") — only "ship it" or equivalent clear authorization.

### Phase 8 — Deploy/Publish
Execute the deploy or publish command for the artifact type:
- Python package: `twine upload dist/*`
- npm package: `npm publish`
- Docker image: `docker push [registry]/[name]:[version]`
- Web app: deployment command (Vercel, AWS, GCP, etc.)
- GitHub Release: `gh release create [version] --notes-file CHANGELOG.md`
- HuggingFace: `huggingface-cli upload`
- Other: project's documented deploy command

Log the final deploy command, timestamp, exit code, and any output URL or confirmation ID.

---

## Output: ship-log.md

```
# Ship Log
Artifact: [type] — [name]
Version: [version]
Deploy target: [target]
Started: [ISO timestamp]

## Phase 1 — Verify Completeness
- [x] Core source files present
- [x] No placeholders in production code
- [ ] FAIL: package.json missing "license" field
...

## Phase 2 — Test Suite
Tests: 142 passed, 0 failed, 0 errors (14.3s)

## Phase 3 — Security Scan
- npm audit: 0 HIGH, 2 MEDIUM (lodash prototype pollution — acceptable, no fix available)

## Phase 4 — Documentation
- [x] README with install + quickstart
- [x] CHANGELOG updated for v1.2.0

## Phase 5 — Version
- Version: 1.2.0 (consistent across package.json, README badge)

## Phase 6 — Build
- npm run build: exit 0, dist/ 2.3MB

## Phase 7 — Confirmed
- User approved at [timestamp]: "ship it"

## Phase 8 — Deploy
- Command: npm publish --access public
- Exit code: 0
- Published: https://www.npmjs.com/package/[name]/v/1.2.0
- Completed: [ISO timestamp]
```

---

## Edge Cases

| Situation | Handling |
|-----------|----------|
| Phase 1 FAIL (missing file) | Fix it, re-run phase 1 before continuing |
| Tests fail in phase 2 | Use autoresearch:fix to resolve, then re-run ship |
| HIGH security vulnerability | Block pipeline. Report to user. Cannot ship with known HIGH+ vulns. |
| Build fails in phase 6 | Report error, stop pipeline. Fix required before phase 7. |
| User types something other than "SHIP IT" at phase 7 | Address concern, loop back |
| Deploy fails in phase 8 | Log failure with full error output. Do not retry automatically. |
| No build step exists (e.g., raw script) | Note "no build step" in ship-log.md, proceed |

Files in this skill

  • SKILL.md7.7 KB
  • type-checklists.md7.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.