Skip to content

ci: add check + Remotion smoke-render workflow - #7

Merged
HomenShum merged 1 commit into
mainfrom
claude/add-ci
Jul 29, 2026
Merged

ci: add check + Remotion smoke-render workflow#7
HomenShum merged 1 commit into
mainfrom
claude/add-ci

Conversation

@HomenShum

Copy link
Copy Markdown
Owner

Why

A reproducible-walkthrough tool with zero CI undercuts its own thesis. This adds a minimal workflow that actually exercises the pipeline, not a lint-only checkbox.

What CI covers

  • npm ci + npm run check (the repo's own syntax gate for walkthrough.mjs and judge-video.mjs)
  • A smoke render: frames 0-30 of WT-NodeRoom from src/index.js, using only committed inputs (src/walkthrough.data.js + public/wt/NodeRoom/). This proves the Remotion render pipeline reproduces from bundled walkthrough data on a clean machine — the core reproducibility claim.
  • Verifies the output MP4 exists and is non-empty.

What CI deliberately excludes

  • The Playwright capture step (node walkthrough.mjs): it drives live localhost apps (NodeRoom/NodeSlide dev servers) that do not exist in CI. Capture stays a local step by design; CI proves the render half reproduces from what capture commits.
  • Full-length renders: 1 second at 1080p is enough to prove the pipeline; full videos would burn CI minutes for no extra signal.

Verification

  • Locally: npm run check passes; WT-NodeRoom --frames=0-30 renders a 311 kB MP4.
  • On Actions: this PR's own run is the proof — the workflow triggers on pull_request.

Side observation (not changed here): render:example in package.json targets WT-SoloFounder, which no longer exists in any committed data file — the script is stale.

🤖 Generated with Claude Code

A reproducible-walkthrough tool with zero CI undercuts its own thesis.
This workflow proves two things on every push/PR: the syntax gate
(npm run check) passes, and the render pipeline reproduces a video
from the committed walkthrough data alone (frames 0-30 of WT-NodeRoom,
whose frames live in public/wt/NodeRoom). The Playwright capture step
is deliberately excluded: it needs live localhost apps.

Verified locally: check passes, WT-NodeRoom frames 0-30 renders 311 kB.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@HomenShum
HomenShum merged commit bb433ed into main Jul 29, 2026
2 checks passed
@HomenShum
HomenShum deleted the claude/add-ci branch July 29, 2026 09:40
HomenShum added a commit that referenced this pull request Jul 29, 2026
…ists

WT-SoloFounder is in no committed walkthrough data file, so the documented
example command failed on a fresh clone — a stale pointer surviving a re-cut,
the same defect class the CI added in #7 exists to catch. Now targets
WT-NodeRoom, which is exactly what that CI smoke-renders from committed inputs,
so this script can no longer silently drift again without CI going red.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant