Skip to content

Videos move to a GitHub release; the intro film is re-paced to 103 s; the READMEs are rewritten - #53

Merged
ZLHad merged 3 commits into
mainfrom
claude/intro-103-media
Oct 3, 2026
Merged

ZLHad merged 3 commits into
mainfrom
claude/intro-103-media

Conversation

@ZLHad

@ZLHad ZLHad commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Why

After #51 the maintainer watched the 150.5 s intro and said the body was "too slow: the pause after each line of text is too long… but not a flash either", asked whether a GitHub repo should keep video files at all ("一般github上面的不直接把文件传在仓库吧"), chose to clean the history afterwards ("历史选 b"), and asked for the README to be rewritten ("README 自己重写"). After seeing the 103 s draft: "节奏可以(个别bgm音效要和视频内容节奏同步就好了)" (the pacing is fine; a few music and sound cues should land with the picture).

Changes

Videos out of git

  • A new GitHub release, media (tag media, created for this PR), holds the videos: the five showcase films (the intro's new 103 s cut as intro-film-1080p.mp4, 295 MB), the v3 intro, the style reel and the intro's gate ① animatic, plus SHA256SUMS.txt.
  • tools/media.txt lists each video's path in the repo, its asset name and sha256; tools/fetch_media.sh [word…] downloads them back to those paths and checks the hash. The paths are in .gitignore, so the build scripts and docs that say media/final.mp4 keep working.
  • Removed from the tree: the five final.mp4, v3's final.mp4 and preview.gif, the four showcase preview GIFs, styles/gallery.mp4, the intro's poster.png (now poster.jpg) and the gate ① animatic GIF.
  • tools/ci.sh: a new check fails on video files (except the 31 styles/*/media/swatch.mp4) and on any tracked file over 8 MB. Written with [[ ]] because bash 3.2 can't parse case inside $( ).
  • CONTRIBUTING (rule 4 and the release section) and CLAUDE.md (the tree) say where videos go.
  • The installer's shallow clone now downloads about 80 MB instead of 215 and takes about 185 MB on disk instead of 420 (a fresh --depth 1 clone of this branch).

Intro film at 103 s (showcase/04-intro-film)

  • js/tmap.js: back to the 87.5 s pacing, with 15 short holds (+15.5 s) where a line would otherwise flash by. Each line holds long enough to read once in either language (English about 20 characters/s, Chinese about 7, + 0.8 s, at least 1.5 s), measured on frames at 4 fps: 1.4–2.75 s each.
  • tools/retime.py: a lengthened bar keeps its patterns playing; the stretches are no longer written as held breaths.
  • Sync: every named score accent was paired with the sound effect of its picture event. Four had drifted when the picture moved in earlier rounds (second pair of directory cards, the 13 case stars, "This film, too.", the end card's typing); moved in audio/score.base.json. The case-star ripple compared film time against story-time thresholds; it runs on story time now.
  • Six new 1080p README chapters (uploaded as attachments, cut at section arrivals, frame 0 never black); tools/chapters.sh, tools/deliver.sh (103 s, the release copy at CRF 19), tools/build_audio.sh (103 s, and it writes assets/wave.json).
  • Showcase README (en/zh) rewritten for 103 s; NOTES, DECISIONS, REVIEW, LESSONS carry the round.

READMEs rewritten (README.md, README.zh-CN.md)

  • A fresh-context editor listed what read oddly (agent-facing jargon copied from CLAUDE.md, line-by-line translation in both directions, the same points told three or four times, the first screen not saying what/what it makes/how to start). Each README is now written on its own, about half the length.
  • New sections: requirements, cost and limits (Windows untested, the agent's own cost, what the agent can't do); how this differs from just asking an agent, with the A/B result as it was (fresher idea, craft not clearly better). Removed: the CLI table (bin/vh help), the community table (cases/README.md), the download table and the China-network mirrors (moved to the wiki; bin/vh doctor points there). "Supernova" became "burst", and the front page no longer quotes a typo.

Playbook: 03, stretching holds for reading time must not slow the whole film or stall the music; 04, when the picture changes, move the score's accent for that event along with its sound effect.

Second commit: review round 1

  • Blocker: a comment I put mid-line in js/features.js hid the case-star map's uAmt assignment, so the map behind "13 case studies" never showed (in the release film and README chapter 4). Fixed, re-rendered; the release's intro-film-1080p.mp4 replaced (main doesn't reference it yet), its sha updated in tools/media.txt.
  • The last two of the 13 celesta notes were 0.3 and 0.68 s off their stars (the case-study hold sat on them, and score repeats don't go through the time map): the hold now starts after the 13th star, and all 13 land at 0.000 s.
  • Holds checked against the short-label rule (below), frame by frame: "pass" was about 1.3 s and gate ② about 1.9 s (needs 2.15). Rebalanced inside the same bars, so the film stays 103 s: pass +0.75, end title −0.75; gate ② +0.75, router −0.75. Now router ≈ 2.0 s, gate ② ≈ 2.7, pass ≈ 2.0, gate ③ and Final cut ≈ 2.3, "This film, too." ≈ 1.9. Sections after Final cut moved 0.75 s later; chapters 2–6 re-cut and re-uploaded.
  • Reading-time rule (the maintainer left the call to me): templates/TASTE_CHECKLIST.md Document auto-merge; match the ruleset file to the live ruleset #5 and playbook/03 now have a short-label rule: a few words in a moving shot get one read, max(1.5 s, CJK/7 + other/20 + 0.8 s); titles, claims and numbers to remember keep the on-screen rule. tools/readcheck.py checks it for data-read="label" (--mode label, a lab tag, a budget line); tools/ci.sh tests it.
  • Claims softened: the A/B paragraph says what the note found (two requests, quick level, silent; the reviewer would have posted the floors-only films); sync says "accents that share a picture event with a sound effect"; the style reel is 720p; the film download says 297 MB; most (not all) SFX vary.
  • Pointers fixed: install.sh, engines/README.md and video-types/03 no longer point at removed README sections; showcase 00–03 build_audio.sh --mux stops with a fetch hint, their READMEs list the fetch step; bin/vh captions warns when media/final.mp4 is missing.
  • tools/fetch_media.sh: --force, keeps a local file that differs, reports every failure (exit 1), fails when nothing matches, reads a last line without a newline. tools/ci.sh: the video check is case-insensitive and allows only styles/<one folder>/media/swatch.mp4.
  • CONTRIBUTING: only the maintainer (or an agent asked to) uploads to the release; a replaced file gets a new name, and main never points at a clobbered asset.
  • audio/score.base.json keeps its original layout (5 events change); DECISIONS points at a881f4f for the rollbacks; stale comments fixed; the release notes corrected.
  • 4K groundwork (no change at 1080p: snapshots before and after are byte-identical): the WebGL renderers, post passes, type canvases and point sprites follow window.devicePixelRatio, and tools/deliver_4k.sh renders --resolution 4k with a 4K Blender plate swapped in. The 4K plate is still rendering; the 4K film goes into the release afterwards.

Checked

  • tools/ci.sh --committed with shellcheck and pyflakes, under bash 5 and VH_BASH=/bin/bash: all checks passed. The new media check flags *.mp4/*.gif outside the swatches and passes .wav (tested under both bashes).
  • Logged-out browser on this branch: README.md and README.zh-CN.md each load 7 players, the intro README 6; no broken images, no bare URLs.
  • Relative links in the 60 changed files resolve.
  • tools/fetch_media.sh 03-math downloaded and verified a file; anonymous downloads from the release work.
  • Intro: bin/vh check passes; bin/vh qa 62/62 cues within a frame (median 6.0 ms), −14.0 LUFS, −1.65 dBTP; 3090 frames.

Not done / follow-ups

  • The 4K version of the intro is rendering (Blender, native 4K, about 6 h); it goes into the release as an asset, with a link added afterwards.
  • History clean-up (the maintainer chose to purge old videos from history): after this merges, with a force push of main that needs the ruleset paused.
  • The wiki has matching edits (China network page, download table, 103 s) to push after the merge.

ZLHad added 3 commits October 4, 2026 03:01
… the READMEs are rewritten

- Videos live in the release "media" instead of git: tools/media.txt (path, asset, sha256), tools/fetch_media.sh
  downloads them back; the paths are gitignored; the showcase preview GIFs are retired. tools/ci.sh fails on video
  files (except the style swatches) and on any file over 8 MB. CONTRIBUTING and CLAUDE.md say where videos go.
- showcase/04-intro-film at 103 s: the 87.5 s pacing with 15 short holds where a line would flash by, the music
  keeps playing through them; four score accents moved onto their picture events; the case-star map runs on story
  time. Six new README chapters; the film itself is intro-film-1080p.mp4 in the release.
- README.md and README.zh-CN.md rewritten, each on its own: what it is, what it makes, quick start, asking, how it
  works (with the A/B result as it was), types and styles, Blender, sound, effort and who decides, requirements,
  cost and limits, docs map. The download table and the China-network mirrors moved to the wiki; bin/vh doctor
  points there. The installer's shallow clone downloads about 80 MB (was 215).
- playbook/03 and 04: two lessons from the re-pacing and the sync check.
@ZLHad
ZLHad marked this pull request as ready for review October 3, 2026 20:28
@ZLHad
ZLHad enabled auto-merge (squash) October 3, 2026 20:28
@ZLHad
ZLHad merged commit 83ecf73 into main Oct 3, 2026
2 checks passed
@ZLHad
ZLHad deleted the claude/intro-103-media branch October 3, 2026 20:29
ZLHad added a commit that referenced this pull request Oct 4, 2026
…of fixed seconds (#57)

- Review caps (TASTE_CHECKLIST scoring layer, CLAUDE.md / AGENTS.md, playbook/01 and 02, READMEs, NOTES and REVIEW templates): at most 10 full review rounds per film and 5 fix-and-check cycles per issue; a local fix gets a check of its own span, not a new round; studio's three rounds still run; a gate 3 return restarts the counts; a floor FAIL at its cap goes to the human and never ships as final. bin/vh effort prints the caps.
- Reading time has no fixed seconds. The floor (TASTE_CHECKLIST #5) is one brisk read, max(1.5 s, CJK/7 + other/20 + 0.8 s), the short-label rule from #53. A new BRIEF line, Pace: relaxed | normal | brisk, sets the comfortable target (relaxed CJK/4.5 + other/15 + 1.0 s, normal CJK/6 + other/18 + 0.8 s, brisk = the floor); bin/vh new writes relaxed for math and paper, brisk for meme.
- tools/readcheck.py: FAIL under the floor, WARN under the target; --pace, data-pace and "pace" in texts.json; --budget shows both. bin/vh rhythm draws red and amber to match.
- Docs that restated 2.5 s follow the rule: templates, playbook/03, video-types/01, five style presets (four keep 2.5 s as a style beat), recipes recomputed (black-card 46, breath-title-card 62, brand-imprint-open 45 frames), docs/research/04.
ZLHad added a commit that referenced this pull request Oct 4, 2026
… the READMEs are rewritten (#53)

* Videos move to a GitHub release; the intro film is re-paced to 103 s; the READMEs are rewritten

- Videos live in the release "media" instead of git: tools/media.txt (path, asset, sha256), tools/fetch_media.sh
  downloads them back; the paths are gitignored; the showcase preview GIFs are retired. tools/ci.sh fails on video
  files (except the style swatches) and on any file over 8 MB. CONTRIBUTING and CLAUDE.md say where videos go.
- showcase/04-intro-film at 103 s: the 87.5 s pacing with 15 short holds where a line would flash by, the music
  keeps playing through them; four score accents moved onto their picture events; the case-star map runs on story
  time. Six new README chapters; the film itself is intro-film-1080p.mp4 in the release.
- README.md and README.zh-CN.md rewritten, each on its own: what it is, what it makes, quick start, asking, how it
  works (with the A/B result as it was), types and styles, Blender, sound, effort and who decides, requirements,
  cost and limits, docs map. The download table and the China-network mirrors moved to the wiki; bin/vh doctor
  points there. The installer's shallow clone downloads about 80 MB (was 215).
- playbook/03 and 04: two lessons from the re-pacing and the sync check.

* Review fixes: the case-star map, holds, sync, docs, media rules, a short-label reading rule

* Review nits: playbook wording, readcheck in the CLI help, QA figures, the 4K script's guard
ZLHad added a commit that referenced this pull request Oct 4, 2026
…of fixed seconds (#57)

- Review caps (TASTE_CHECKLIST scoring layer, CLAUDE.md / AGENTS.md, playbook/01 and 02, READMEs, NOTES and REVIEW templates): at most 10 full review rounds per film and 5 fix-and-check cycles per issue; a local fix gets a check of its own span, not a new round; studio's three rounds still run; a gate 3 return restarts the counts; a floor FAIL at its cap goes to the human and never ships as final. bin/vh effort prints the caps.
- Reading time has no fixed seconds. The floor (TASTE_CHECKLIST #5) is one brisk read, max(1.5 s, CJK/7 + other/20 + 0.8 s), the short-label rule from #53. A new BRIEF line, Pace: relaxed | normal | brisk, sets the comfortable target (relaxed CJK/4.5 + other/15 + 1.0 s, normal CJK/6 + other/18 + 0.8 s, brisk = the floor); bin/vh new writes relaxed for math and paper, brisk for meme.
- tools/readcheck.py: FAIL under the floor, WARN under the target; --pace, data-pace and "pace" in texts.json; --budget shows both. bin/vh rhythm draws red and amber to match.
- Docs that restated 2.5 s follow the rule: templates, playbook/03, video-types/01, five style presets (four keep 2.5 s as a style beat), recipes recomputed (black-card 46, breath-title-card 62, brand-imprint-open 45 frames), docs/research/04.
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