feat: demo walkthrough script + screenshots→mp4/gif build pipeline (#48) - #54
Merged
Conversation
Assisted-by: Claude Code (sonnet subagent) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Assisted-by: Claude Code (sonnet subagent) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ization, stronger tests (#48) - Add pytest.importorskip() at top of test_build_demo_media.py to skip gracefully when PIL/imageio_ffmpeg aren't installed (CI without demo tooling deps won't error on collection, just skip the tests) - Normalize all gif frames to first frame's canvas size before downscaling by gif_width, preventing silent corruption on mismatched frame sizes - Strengthen mp4 test assertions to verify decodability by reading back metadata (source_size, fps) via imageio-ffmpeg - Add test_build_demo_media_handles_mismatched_frame_sizes() to verify gif builds with two different-sized frames (1280x720 and 1000x700) normalized to common canvas size - Scope .gitignore mp4/gif patterns to demo directories only instead of repo-wide blanket patterns (demo-media/, _docs/local/demo-frames/) Assisted-by: Claude Code (haiku subagent) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… gate The format gate ran black/isort on the whole scripts/ dir, reformatting pre-existing files unrelated to #48 (CI only lints src+tests, so scripts/ was never black-clean). Restores them to main; #48 keeps only its own files. Assisted-by: Claude Code (fable orchestrator) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #48
What
_docs/DEMO-script.md— 8-beat walkthrough (warm-up → login → dashboard → QA math/KaTeX → practice → goals → progress), each beat mapped to a screenshot filename; routes verified againstApp.jsx.scripts/build_demo_media.py— ordered PNG frames →demo.mp4(imageio-ffmpeg, bundled binary) +demo.gif(Pillow), configurable per-frame duration/fps/gif-width; even-dimension + uniform-canvas normalization on both paths.scripts/demo_capture_checklist.md— the ordered screenshot list + capture options (manual or chrome-devtools MCP).tests/test_build_demo_media.py.Scope / owner-dependent (documented, not done here)
demo-media/is gitignored; DEMO-script recommends attaching finaldemo.mp4/demo.gifto a GitHub Release rather than committing to main.CI note
imageio-ffmpeg/Pilloware demo TOOLING deps, not app deps — deliberately NOT added torequirements.txt. The test file usespytest.importorskip, so CI (which doesn't install them) SKIPS these tests cleanly rather than erroring at collection. Verified.Verification
🤖 Generated with Claude Code
https://claude.ai/code/session_016v4C1daTwNakL6QDbmy3MJ