ship-sitelisted
Install: claude install-skill DanielOnPurpose/danielonpurpose-skills
# Ship Site
Deploy accidents happen when there's no single source of truth between the local folder, git, and the host. These rules exist so a stale build never overwrites a live site.
## The standing rules (never re-litigate)
1. **Git is the source of truth.** Every site lives in a git repo. Commit and push after every meaningful change — it costs nothing and is always safe.
2. **Deploy ONLY on explicit command.** Never auto-deploy. Until the user says "push it" / "deploy it", build and commit only.
3. **Before ANY deploy, verify you're shipping the current version:**
- `git status` must be clean and pushed.
- Confirm the folder being deployed is the one just worked on (echo the absolute path and last-modified time of `index.html`).
- If a live site already exists, fetch it and diff a key page against local before overwriting. If they've diverged unexpectedly, STOP and show the difference.
4. **Manual host drops: drag the FOLDER, not the zip** (zips often 404). Say this every time a manual drop is involved.
5. **After deploy, verify live** — fetch the live URL and confirm it matches the local build (title, hero copy, a changed element). Never report "deployed" without checking.
## Packaging for handoff
1. Zip the site folder to a clear path (e.g. `~/Desktop/<site-name>.zip`).
2. Keep the unzipped folder available too (for a manual host drop).
3. Reveal it in the file manager and state the absolute path in the final message.
## Connecting a domain (the #1 time