Videos move to a GitHub release; the intro film is re-paced to 103 s; the READMEs are rewritten - #53
Merged
Merged
Conversation
… 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.
…ort-label reading rule
… the 4K script's guard
ZLHad
marked this pull request as ready for review
October 3, 2026 20:28
ZLHad
enabled auto-merge (squash)
October 3, 2026 20:28
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.
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.
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
media(tagmedia, created for this PR), holds the videos: the five showcase films (the intro's new 103 s cut asintro-film-1080p.mp4, 295 MB), the v3 intro, the style reel and the intro's gate ① animatic, plusSHA256SUMS.txt.tools/media.txtlists 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 saymedia/final.mp4keep working.final.mp4, v3'sfinal.mp4andpreview.gif, the four showcase preview GIFs,styles/gallery.mp4, the intro'sposter.png(nowposter.jpg) and the gate ① animatic GIF.tools/ci.sh: a new check fails on video files (except the 31styles/*/media/swatch.mp4) and on any tracked file over 8 MB. Written with[[ ]]because bash 3.2 can't parsecaseinside$( ).--depth 1clone 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.audio/score.base.json. The case-star ripple compared film time against story-time thresholds; it runs on story time now.tools/chapters.sh,tools/deliver.sh(103 s, the release copy at CRF 19),tools/build_audio.sh(103 s, and it writesassets/wave.json).READMEs rewritten (
README.md,README.zh-CN.md)bin/vh help), the community table (cases/README.md), the download table and the China-network mirrors (moved to the wiki;bin/vh doctorpoints 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
js/features.jshid the case-star map'suAmtassignment, so the map behind "13 case studies" never showed (in the release film and README chapter 4). Fixed, re-rendered; the release'sintro-film-1080p.mp4replaced (main doesn't reference it yet), its sha updated intools/media.txt.templates/TASTE_CHECKLIST.mdDocument 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.pychecks it fordata-read="label"(--mode label, alabtag, a budget line);tools/ci.shtests it.install.sh,engines/README.mdandvideo-types/03no longer point at removed README sections; showcase 00–03build_audio.sh --muxstops with a fetch hint, their READMEs list the fetch step;bin/vh captionswarns whenmedia/final.mp4is 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 onlystyles/<one folder>/media/swatch.mp4.audio/score.base.jsonkeeps its original layout (5 events change); DECISIONS points at a881f4f for the rollbacks; stale comments fixed; the release notes corrected.window.devicePixelRatio, andtools/deliver_4k.shrenders--resolution 4kwith a 4K Blender plate swapped in. The 4K plate is still rendering; the 4K film goes into the release afterwards.Checked
tools/ci.sh --committedwith shellcheck and pyflakes, under bash 5 andVH_BASH=/bin/bash: all checks passed. The new media check flags*.mp4/*.gifoutside the swatches and passes.wav(tested under both bashes).tools/fetch_media.sh 03-mathdownloaded and verified a file; anonymous downloads from the release work.bin/vh checkpasses;bin/vh qa62/62 cues within a frame (median 6.0 ms), −14.0 LUFS, −1.65 dBTP; 3090 frames.Not done / follow-ups