limitations

A number on screen
is only as honest as its source.

What galley cannot know, and what it deliberately does not do.

Where numbers can go wrong

git reports what the history says

A squash-merge policy, a rewritten history or a shallow clone (--depth) changes what git itself reports. galley repeats git exactly, and has no way to tell the difference.

facts.json is your CI's word, not galley's

galley validates the file against its schema and rejects anything malformed. It cannot verify the numbers inside. If a repo's CI miscounts, the video repeats the miscount faithfully — labelled “from CI artifact” on screen, so a viewer knows exactly which claim to go and check.

github needs a network and a session

Requires network access and a working gh CLI session. Without either — or with no GitHub remote, or no release for the ref — galley degrades to git tag metadata, then to an explicit “no data” beat. Never to an invented date. Both examples on the home page show that beat for real.

Scope limits, v1

one template Every video uses the same release-card layout, parametrised by brand.json. A second layout is a v2 decision, not a runtime flag.
720p, 30–45s Longer or larger renders work but were not the tuned target. Render time scales roughly linearly with duration, resolution and the host machine.
no audio Silence is the honest default when there is no real narration or licensed music to attach a claim to.
real wall-clock time Dominated by launching headless Chromium and encoding H.264 frame by frame. A render can fail if the host cannot launch Chromium — surfaced as an explicit error, never as a hang.
any git ref Tags, SHAs, branches all work. The closing card's version text is only as meaningful as the ref you pass it; both examples use SHAs because neither sibling repo tags releases.

What it does not attempt

No judgment of release quality. No score, no sentiment analysis, no generated summary. Commit messages are sampled verbatim from git, never rewritten.

No model calls anywhere. Every string on screen is either pulled verbatim from a data source or is static template copy.

No publishing. The output is a local .mp4 or .png. What happens to it next is yours.

Full detail: docs/limitations.md