Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,9 @@ showcase/04-intro-film/assets/films*.jpg
showcase/04-intro-film/assets/films*.png
showcase/04-intro-film/blender/out/
showcase/04-intro-film/opening/node_modules

# videos live in the GitHub release "media" (tools/fetch_media.sh puts them here; tools/media.txt lists them)
showcase/*/media/final.mp4
showcase/04-intro-film/v3/final.mp4
styles/gallery.mp4
*.part
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ OpenVideoHarness/
├── CONTRIBUTING.md 改本仓库本身时的分支、PR 和推送规则(人和 agent 都适用)
├── .github/ CI(Linux + macOS 跑 tools/ci.sh)和 main 分支的规则集
├── bin/vh 命令行:doctor · setup · types · effort · new · style · recipes · hf-init · install-skill · sync-agents · tts · voices · captions · beats · music · sfx · mix · mux · qa · readcheck · storyboard · rhythm · cover-preview · sheet · check · gif · review
├── tools/ bin/vh 背后的脚本(audio/:tts、captions、beats、music、sfx、mix、qa;sheet.py、readcheck.py、review.py;给人拍板用的图:storyboard.py、rhythm.py、style_compare.py、cover_preview.py、audio/roll.py,共用 vhdraw.py);ci.sh 是仓库自检
├── tools/ bin/vh 背后的脚本(audio/:tts、captions、beats、music、sfx、mix、qa;sheet.py、readcheck.py、review.py;给人拍板用的图:storyboard.py、rhythm.py、style_compare.py、cover_preview.py、audio/roll.py,共用 vhdraw.py);ci.sh 是仓库自检;fetch_media.sh 从 Release 下载样片视频
├── skills/open-video-harness/ 轻量 skill:在任何目录把做视频的请求引到本仓库
├── video-types/ 9 类视频(09 实验中):工作流、审美、禁止项、prompt 增量块、自查重点、案例、社区 skill
├── playbook/ 跨类型的通用知识
Expand All @@ -168,7 +168,7 @@ OpenVideoHarness/
├── templates/ 新项目的文件:BRIEF、STORYBOARD、STYLE、REVIEW、DECISIONS、NOTES、LESSONS、TASTE_CHECKLIST;用到时再复制:SCRIPT、CHARACTER、PACKAGING
├── styles/ 风格库:从名作学来的风格预设(STYLE.md + tokens.json + 真渲的 5 s 样片),_swatch/ 是样片渲染器
├── cases/ 真实案例拆解 + opus55-gallery(社区作品精选)
├── showcase/ 本仓库自己做的片子(源码 + 成片 + 自评记录)
├── showcase/ 本仓库自己做的片子(源码 + 封面和联系表 + 自评记录;成片在 GitHub Release `media`,`tools/fetch_media.sh` 下载)
├── docs/research/ 研究笔记(中英):量过的几件事、数字,和因此改了什么;是实验记录,不是规则(规则在 playbook/)
├── engines/ ClaudeAnimationBase(内置)+ 其他引擎的安装说明
├── references/
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

## Unreleased

**Videos move out of git; the intro film is re-paced to 103 s; the READMEs are rewritten**
- Why: the maintainer found the 150.5 s intro "too slow after the opening: the pause after each line is too long… but not a flash either", asked whether a GitHub repo should hold video files at all, and found parts of the README odd to read.
- Videos live in the GitHub release `media` (the five showcase films, the v3 intro, the style reel, the intro's gate ① animatic), not in git. `tools/media.txt` lists the ones the build scripts use (all but the animatic) with their paths in the repo and their sha256; `tools/fetch_media.sh [word…]` downloads them back to those paths, which are now in `.gitignore`. The installer's shallow clone downloads about 80 MB instead of 215 and takes about 185 MB on disk instead of 420 (measured on this branch). The showcase preview GIFs are gone (the READMEs play clips instead). `tools/ci.sh` fails on video files (except the 31 style swatches) and on any file over 8 MB. CONTRIBUTING and CLAUDE.md say where videos go.
- `showcase/04-intro-film` at 103 s (3090 frames): back to the 87.5 s pacing with 15 short holds where a line would flash by (each line stays long enough to read once in either language, then the camera moves), and the music keeps playing through them instead of dropping into a "held breath". A sync check moved four score accents onto their picture events and fixed a clock mix-up that made the case-study stars light before the camera arrived. Six new 1080p chapters for the READMEs; the full film is `intro-film-1080p.mp4` in the release.
- `README.md` and `README.zh-CN.md` rewritten, each on its own instead of translated line by line: what it is, what it makes, quick start, how to ask, how it works (with the A/B result as it was), types and styles, Blender, sound, effort and who decides, requirements, cost and limits, a docs map. The download table and the China-network mirror settings moved to the wiki (Getting Started, China-Network / 国内网络); `bin/vh doctor` points there.
- Reading time: `templates/TASTE_CHECKLIST.md` #5 and playbook/03 add a short-label rule. A few words in a moving shot (node names, station names, gate captions) 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 texts marked `data-read="label"` (`--mode label`, a `lab` tag, a budget line, a CI test). Stretching a hold for reading must not stall the music.
- playbook/03: stretching holds for reading time must not slow the whole film or stall the music; playbook/04: when the picture changes, move the score's accent for that event along with its sound effect.

**The installer downloads less: a shallow clone**
- Why: after #51 a full clone is about 550 MB on disk (351 MB to download), 336 MB of it `.git`, because earlier versions of the sample films stay in the history (`showcase/04-intro-film/media/final.mp4` alone is 48 MB, and v3's media moved to `v3/`).
- `install.sh` clones with `--depth 1 --single-branch`: about 215 MB to download and 420 MB on disk (measured 2026-10-04 at a881f4f). Re-running it on such a checkout fetches the newest commit with `--depth 1` and moves to it with `git reset --keep`, since there is nothing to fast-forward along: untracked and ignored files (`LOCAL.md`, `projects/`) and edits to files the update doesn't touch stay. Before fetching, it stops if the checkout has commits of your own or isn't on a branch that tracks the repo (a detached HEAD, a branch of your own). When the update would overwrite an edited file, or an untracked one that isn't ignored, it stops with a hint and puts `origin/main` back, so `git status` and the next run see the checkout as it was. A full clone (made by hand, or by an earlier installer) is still updated with `git pull --ff-only`, because a depth-1 fetch would make it shallow.
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ OpenVideoHarness/
├── CONTRIBUTING.md 改本仓库本身时的分支、PR 和推送规则(人和 agent 都适用)
├── .github/ CI(Linux + macOS 跑 tools/ci.sh)和 main 分支的规则集
├── bin/vh 命令行:doctor · setup · types · effort · new · style · recipes · hf-init · install-skill · sync-agents · tts · voices · captions · beats · music · sfx · mix · mux · qa · readcheck · storyboard · rhythm · cover-preview · sheet · check · gif · review
├── tools/ bin/vh 背后的脚本(audio/:tts、captions、beats、music、sfx、mix、qa;sheet.py、readcheck.py、review.py;给人拍板用的图:storyboard.py、rhythm.py、style_compare.py、cover_preview.py、audio/roll.py,共用 vhdraw.py);ci.sh 是仓库自检
├── tools/ bin/vh 背后的脚本(audio/:tts、captions、beats、music、sfx、mix、qa;sheet.py、readcheck.py、review.py;给人拍板用的图:storyboard.py、rhythm.py、style_compare.py、cover_preview.py、audio/roll.py,共用 vhdraw.py);ci.sh 是仓库自检;fetch_media.sh 从 Release 下载样片视频
├── skills/open-video-harness/ 轻量 skill:在任何目录把做视频的请求引到本仓库
├── video-types/ 9 类视频(09 实验中):工作流、审美、禁止项、prompt 增量块、自查重点、案例、社区 skill
├── playbook/ 跨类型的通用知识
Expand All @@ -165,7 +165,7 @@ OpenVideoHarness/
├── templates/ 新项目的文件:BRIEF、STORYBOARD、STYLE、REVIEW、DECISIONS、NOTES、LESSONS、TASTE_CHECKLIST;用到时再复制:SCRIPT、CHARACTER、PACKAGING
├── styles/ 风格库:从名作学来的风格预设(STYLE.md + tokens.json + 真渲的 5 s 样片),_swatch/ 是样片渲染器
├── cases/ 真实案例拆解 + opus55-gallery(社区作品精选)
├── showcase/ 本仓库自己做的片子(源码 + 成片 + 自评记录)
├── showcase/ 本仓库自己做的片子(源码 + 封面和联系表 + 自评记录;成片在 GitHub Release `media`,`tools/fetch_media.sh` 下载)
├── docs/research/ 研究笔记(中英):量过的几件事、数字,和因此改了什么;是实验记录,不是规则(规则在 playbook/)
├── engines/ ClaudeAnimationBase(内置)+ 其他引擎的安装说明
├── references/
Expand Down
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
1. 只推自己的分支。不推 main,不删分支,不动 tag。
2. 推送前跑 `tools/ci.sh --committed`,全部通过才推。它在一份干净的检出上检查 HEAD,结果和 CI 一致;工作区里没提交的改动不算数。修 bug 要先复现,再证明修好,前后对比写进 PR。
3. PR 一律开成草稿。合并由人决定:人在对话里明确让 agent 合并时,agent 先确认 CI 全绿、自己审过 diff,再用 squash 合并。人让 agent"检查通过后合并"时,agent 审过 diff、把草稿转成正式 PR 后,可以打开 auto-merge(squash),不用守着 CI:必需的检查都通过后由 GitHub 合并,有一项失败就不合。规则集允许管理员在 PR 里"绕过规则合并",这个开关只留给人用,agent 不碰。
4. 不提交 API key、`LOCAL.md`、`projects/` 和渲染产物。测试时改动了受版本管理的样片(`styles/<slug>/media/`),推送前要还原。
4. 不提交 API key、`LOCAL.md`、`projects/` 和渲染产物。测试时改动了受版本管理的样片(`styles/<slug>/media/`),推送前要还原。视频不进 git(风格样片 `swatch.mp4` 除外):成片、样片集锦这类文件放在 GitHub Release `media`,`tools/media.txt` 登记它们在仓库里的路径、文件名和 sha256,`tools/fetch_media.sh` 按它下载。往这个 Release 里放文件是维护者的事,agent 只在维护者要求时做。换一个文件时用新文件名上传(例如 `intro-film-1080p-v2.mp4`),在同一个 PR 里改 `tools/media.txt` 和引用它的链接,合并以后再删旧文件;不要覆盖 main 还在引用的文件,否则在合并之前,按 main 的校验和下载会失败。README 里要直接播放的短片段走 GitHub 的附件链接(每个不到 10 MB)。`tools/ci.sh` 会拦住视频和超过 8 MB 的文件。
5. 用户能感知到的改动,在 `CHANGELOG.md` 的 Unreleased 里记一笔。改了 `CLAUDE.md`,跑 `bin/vh sync-agents` 重新生成 `AGENTS.md`。
6. 提交信息写清改了什么、为什么。末尾可以带 `Co-Authored-By:` 署名行。

Expand Down Expand Up @@ -86,4 +86,6 @@ VH_BASH=/bin/bash tools/ci.sh # macOS:用系统自带的 bash 3.2 跑,M

同一天补打了 `v0.1.0`、`v0.2.0`、`v0.2.1` 三个 Release,说明取自 `CHANGELOG.md` 对应的一节。

另有一个不是版本的 Release `media`(tag `media`,2026-10-04 由 agent 在维护者同意后建):放样片和风格集锦的视频文件,规则见上面第 4 条。它的 tag 不移动,也不受上面两个规则集保护(规则集只管 `v*`);换文件按第 4 条用新文件名,不覆盖。

发新版本的做法:把 `CHANGELOG.md` 的 Unreleased 改成 `## vX.Y.Z — 日期`,经 PR 合并进 main,然后由维护者在合并后的提交上建 Release(`gh release create vX.Y.Z --target <提交> --notes-file <这一节>`)。tag 一旦建好就不再移动;发错了就发一个新的补丁版本。改了这两个文件以后,用 `gh api --method PUT repos/ZLHad/OpenVideoHarness/rulesets/<id> --input <文件>` 同步线上配置,`<id>` 用 `gh api repos/ZLHad/OpenVideoHarness/rulesets` 查。
Loading
Loading