Thanks for helping. Issues and pull requests are welcome.
uv sync
uv run pytest
uv run ruff check . && uv run ruff format --check .ffmpeg and ffprobe with HTTPS support are needed for the live end-to-end check:
uv run python scripts/e2e_smoke.py /tmp/broll-e2e- Be polite to archive.org. Every request goes through
ArchiveClient, which applies the User-Agent, the rate limit and the request log. Don't add direct HTTP calls, and keep unit tests offline by usinghttpx.MockTransport. - Never guess a license. Labels come only from the exact URL table in
catalog.py. Unknown values stayunknown. - Keep provenance atomic. A clip file must never exist without its provenance JSON and database row.
- Keep responses small. Tool output is read by a model, so every field should earn its tokens.
- Behavior changes that affect tools, outputs or limits also update
README.md.
Keep each PR focused and add tests for any behavior you change. CI runs the tests and the lint check on Python 3.12 and 3.13.