# shipprep: default APPLY for the HurleyUS JS shipping standard

Source: https://www.michaelchurley.com/blog/shipprep-default-apply-biome-tsgo-blacksmith-vercel-off  
Published: 2026-06-22  
Author: Michael C. Hurley  
Tags: shipprep, bun, cli, biome, tsgo, blacksmith, vercel, freview, shipping-standard, dev-tooling, caddy, michaelmonetized

## Who

I got tired of re-typing the same Biome/tsgo/Blacksmith/Vercel-off checklist into every Next/Bun root, so the checklist became a CLI that **applies by default**.

For operators who want Vercel Git auto-deploy **off** on main/master and Blacksmith owning `vercel deploy --prebuilt`.

## What

I built **shipprep**, private https://github.com/michaelmonetized/shipprep. HEAD `c35a9d8`. **6** commits. **0** stars. Version **0.1.0**. No README.

`bin/shipprep.mts` (**403** LOC). Shebang Bun. `parseArgs` defaults `apply: true`. `--audit` / `--check` flips read-only. Accepts `--pwd` even when chat clients paste U+2014 in place of ASCII hyphens.

![APPLY report](/blog/shipprep-default-apply-biome-tsgo-blacksmith-vercel-off/screenshots/apply-report.png)

**APPLY** writes package scripts (`tsc`/`typecheck` to `tsgo --noEmit`, `lint` to biome-lint), tsconfig bun+node + `**/*.mts`, `scripts/dev-localhost*.mjs`, `scripts/ship.mts`, freview `pre-push`, `.github/workflows/ship.yml` on `blacksmith-4vcpu-ubuntu-2404`, and `vercel.json` with `git.deploymentEnabled.main/master = false`.

![Vercel git off](/blog/shipprep-default-apply-biome-tsgo-blacksmith-vercel-off/screenshots/vercel-git-off.png)

![Blacksmith ship.yml](/blog/shipprep-default-apply-biome-tsgo-blacksmith-vercel-off/screenshots/blacksmith-ship-yml.png)

![Audit checks](/blog/shipprep-default-apply-biome-tsgo-blacksmith-vercel-off/screenshots/audit-checks.png)

Required roots for validRoot: `package.json`, `bun.lock`, `.vercel`, `.next`. Tests in `test/shipprep.test.ts` (**122** LOC).

Sibling tooling in the org: shipthing is a contacts CRM named for carrier rates; bundx-init is Caddy `.localhost` only. This CLI is the shipping-standard migrator.

## Where

Code only: [github.com/michaelmonetized/shipprep](https://github.com/michaelmonetized/shipprep), **private**. No live site.

```bash
bun bin/shipprep.mts --pwd ~/Projects/app
bun bin/shipprep.mts --audit --json
```

## When

**2026-05-13 14:08 ET.** `d234692` audit executable.

**14:17 ET.** `811a0ac` false positives.

**14:30 ET.** `6cf4af4` APPLY migrations; default flips to apply.

**14:54 ET.** `cf6928a` disable Vercel git deploys.

**2026-06-22.** nightly ×2, `.uncap`, HEAD `c35a9d8`.

![Commit arc](/blog/shipprep-default-apply-biome-tsgo-blacksmith-vercel-off/screenshots/commit-arc.png)

## Why

Audit-only tools leave you copy-pasting. Blacksmith prebuilt plus Vercel git disabled is a **gate**, not a README hope. Default APPLY is the point of the tool; `--audit` stays opt-in.

**Engagement Q:** Keep APPLY as the default, or flip to `--audit` default so a typo cannot rewrite twelve package scripts?
