将演示文稿发布到 h1sort.com/claude4aieng
此仓库是唯一事实来源。 h1sort-website 仅保存生成的公开副本。切勿在网站仓库内编辑演示文稿。
claude4aieng/deck/src/** ──assemble.mjs --public──▶ h1sort-website/public/claude4aieng/index.html ──▶ h1sort.com/claude4aieng/
封面(幻灯片 1)1200×630 JPEG ──▶ h1sort-website/public/claude4aieng/og.jpg
步骤
- 在此提交演示文稿。 运行
node deck/tools/assemble.mjs --expect 40:00和node deck/tools/shot.mjs deck/tool-use.html,两者都通过后,提交并推送main分支。 - 公开构建: 运行
node deck/tools/assemble.mjs --expect 40:00 --public --out <scratch>/index.html。它会剥离所有<aside class="notes">并添加data-public(无控制栏;N、P、? 被禁用)。检查:grep -c 'class="notes"'结果为 0。 - 仅当幻灯片 1 发生变更时生成 OG 图片: 使用 Playwright(
deck/node_modules)以 1200×630 渲染?still=1&solo=1&slide=1,JPEG 质量约 82,确保图片小于 300 KB。 - 网站仓库: 运行
git checkout main && git pull,新建分支chore/refresh-claude4aieng,将文件复制到public/claude4aieng/目录,运行npm ci && npm run build,确认cmp dist/claude4aieng/index.html public/claude4aieng/index.html一致。 - 冒烟测试真实路由: 在后台运行
npx wrangler dev --port 8799,配合timeout命令;检查/claude4aieng返回 307,/claude4aieng/返回 200,/snowflake/和/gbm-ai/仍返回 200。使用timeout停止进程,而不是pkill -f 'wrangler dev'(后者会匹配到运行该命令的 shell 并杀死你自己的命令)。 - 仅提交演示文稿相关路径: 只提交
public/claude4aieng路径(以及如果变更了的astro.config.mjs/public/llms.txt)。切勿使用git add -A。 - 任何分支推送都会触发生产部署: (Workers Builds,约 2.5 分钟)。推送,创建 Pull Request 并立即合并,以确保
main与线上环境一致;确认合并提交上的「Workers Builds」检查已成功。
经验日志
- 2026-10-18 ·
main自 2026-10-13 以来落后于生产环境:Snowflake 演讲是从feat/snowflake-world-tour分支部署的(分支推送即触发部署),但从未合并。已作为 PR #20 合并(树结构与已部署分支相同,无可见变更)。规则:分支部署当天务必合并。 - 2026-10-18 · 通过 PR #21(
039a04b)首次挂载/claude4aieng/,来源为 claude4aiengb1b7e43。构建和部署检查均成功。 - 2026-10-18 · 从 Claude Code 云会话中无法删除分支(API 和 git push 均返回 403);请从 GitHub UI 删除已合并的分支。
- 2026-10-18 · 通过 PR #22(
3aaff2f)刷新,来源为 claude4aieng2d87bab,在实时演练后(第 16 张幻灯片上的测量表格)。部署成功。 - 2026-10-18 · 要检查 GitHub 上的
paso-*分支,请使用git ls-remote origin 'paso-*'或显式获取它们(git fetch origin '+refs/heads/paso-*:refs/remotes/origin/paso-*'):在此浅克隆中,普通的git fetch仅更新main,导致origin/paso-*引用过时。 - 2026-10-18 · 通过 PR #23(
403f357)刷新,来源为 claude4aieng508bb0a:Rotura #1b 幻灯片,共 18 张。部署成功。