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)
- 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.
- Deploy ONLY on explicit command. Never auto-deploy. Until the user says "push it" / "deploy it", build and commit only.
- Before ANY deploy, verify you're shipping the current version:
git statusmust 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.
- Manual host drops: drag the FOLDER, not the zip (zips often 404). Say this every time a manual drop is involved.
- 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
- Zip the site folder to a clear path (e.g.
~/Desktop/<site-name>.zip). - Keep the unzipped folder available too (for a manual host drop).
- Reveal it in the file manager and state the absolute path in the final message.
Connecting a domain (the #1 time sink — do it this way)
- One step at a time. Give exactly ONE instruction, then ask "tell me what you see" before the next. Never dump a 10-step list.
- Identify the registrar first (whois or ask), then follow the right DNS path (A record + CNAME for www).
- On the host side: add the custom domain → verify → wait for the SSL certificate before declaring done.
- Forms: confirm form detection post-deploy, set notification emails, then send a test submission and confirm receipt before closing out.
Wrap-up
Every finished site gets docs saved to the repo (PRD.md, BRAND-GUIDE.md, DEV-NOTES.md), then invoke the wrap-session skill.