Publish the deck to h1sort.com/claude4aieng
This repo is the source of truth. h1sort-website only holds a generated public copy. Never edit the deck inside the site repo.
claude4aieng/deck/src/** ──assemble.mjs --public──▶ h1sort-website/public/claude4aieng/index.html ──▶ h1sort.com/claude4aieng/
cover (slide 1) 1200×630 JPEG ──▶ h1sort-website/public/claude4aieng/og.jpg
Steps
- Deck committed here.
node deck/tools/assemble.mjs --expect 40:00andnode deck/tools/shot.mjs deck/tool-use.htmlpass; commit and pushmain. - Public build:
node deck/tools/assemble.mjs --expect 40:00 --public --out <scratch>/index.html. It strips every<aside class="notes">and addsdata-public(no control bar; N, P, ? disabled). Check:grep -c 'class="notes"'is 0. - OG image only if slide 1 changed: render
?still=1&solo=1&slide=1at 1200×630 with Playwright (deck/node_modules), JPEG quality ~82, keep it under 300 KB. - Site repo:
git checkout main && git pull, new branchchore/refresh-claude4aieng, copy the files intopublic/claude4aieng/,npm ci && npm run build, confirmcmp dist/claude4aieng/index.html public/claude4aieng/index.html. - Smoke test real routing:
npx wrangler dev --port 8799in the background with atimeout;/claude4aieng→ 307,/claude4aieng/→ 200,/snowflake/and/gbm-ai/still 200. Stop it withtimeout, notpkill -f 'wrangler dev'(that pattern matches the shell running it and kills your own command). - Commit only the deck paths (
public/claude4aieng, plusastro.config.mjs/public/llms.txtif changed). Nevergit add -A. - Any branch push deploys production (Workers Builds, ~2.5 min). Push, open the PR and merge it right away so
mainmatches what is live; confirm the "Workers Builds" check on the merge commit succeeded.
Lessons log
- 2026-10-18 ·
mainhad been behind production since 2026-10-13: the Snowflake talk was deployed fromfeat/snowflake-world-tour(branch push = deploy) and never merged. Merged as PR #20 (tree identical to the deployed branch, no visible change). Rule: always merge the same day a branch deploys. - 2026-10-18 · First mount of
/claude4aieng/via PR #21 (039a04b), from claude4aiengb1b7e43. Build and deploy checks succeeded. - 2026-10-18 · Branch deletion is blocked from Claude Code cloud sessions (API and git push both 403); delete merged branches from the GitHub UI.
- 2026-10-18 · Refresh via PR #22 (
3aaff2f) from claude4aieng2d87babafter the live dry run (measured table on slide 16). Deploy succeeded. - 2026-10-18 · To check the
paso-*branches on GitHub, usegit ls-remote origin 'paso-*'or fetch them explicitly (git fetch origin '+refs/heads/paso-*:refs/remotes/origin/paso-*'): a plaingit fetchin this shallow clone only updatesmainand leaves staleorigin/paso-*refs. - 2026-10-18 · Refresh via PR #23 (
403f357) from claude4aieng508bb0a: Rotura #1b slide, 18 slides. Deploy succeeded.