Skip to content

Add launch video and renderable source for Collections Workflow - #26

Merged
withrvr merged 2 commits into
masterfrom
claude/brag-video-readme-s27820
Oct 8, 2026
Merged

withrvr merged 2 commits into
masterfrom
claude/brag-video-readme-s27820

Conversation

@withrvr

@withrvr withrvr commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Phase N: Launch video

What this adds

A 23-second launch video (docs/brag/brag.mp4) that demonstrates Collections Workflow with real data from the sample workbook. The video includes:

  • Renderable source in docs/brag/source/:

    • brag.html: Pure-function frame renderer (all 6 scenes, animations, and real app data)
    • capture.js: Playwright-based frame capture pipeline (stills or video)
    • audio.py: Numpy-based soundtrack synthesis (music, effects, 48kHz stereo)
    • README.md: Rebuild instructions
  • Deliverables in docs/brag/:

    • brag.mp4: Final 1920×1080 30fps video with embedded audio
    • brag.jpg: Poster frame (also frame 0 of video)
    • share-copy.txt: Social media caption
    • brag-plan.md: Storyboard and creative brief

Requirement served

Provides a polished, data-driven launch artifact that:

  • Uses real output from the sample workbook (36 invoices, 17 exceptions, 47.2% exception rate, Rs 12,02,000.00 overdue)
  • Demonstrates the core value proposition: a control gate that blocks at high exception rates, and transparent exception reporting
  • Embeds in README as a visual introduction to the project
  • Is fully reproducible from source (no black-box video editing)

Docs updated

  • README.md (added video embed and link to source)
  • CHANGELOG.md (documented new video and source)
  • docs/brag/README.md (rebuild instructions)
  • docs/brag/brag-plan.md (storyboard)

Verification

The video renders from source without external dependencies beyond Node 22+, FFmpeg, Python 3 with numpy, and the Inter font. All frame timings, animations, and data are deterministic functions of elapsed time. The audio is synthesized from scratch (no samples). Rebuild instructions are in docs/brag/source/README.md.

Known gaps carried to next phase

None. This is a self-contained deliverable with full source.

https://claude.ai/code/session_01SsqwtCwXUtzjLaEjTYPbhn

claude added 2 commits October 7, 2026 08:18
A 23-second launch video made with /brag (latent-spaces/brag,
brag-slim workflow). It uses the sample workbook's real figures and
the app's own output: 36 invoices, 17 exceptions, the run blocked at
47.2%, and Rs 12,02,000.00 overdue. The poster frame is embedded at
the top of the README and links to the mp4.

docs/brag/ holds the video, poster, share copy and storyboard.
docs/brag/source/ holds the frame renderer, capture script and
synthesized soundtrack, so the video can be re-rendered.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01SsqwtCwXUtzjLaEjTYPbhn
- ruff format docs/brag/source/audio.py (fixes the E702 and format failures)
- exclude docs/brag/brag.mp4 from check-added-large-files
- tell typos to ignore 12-hex-char Alembic revision IDs; it flagged
  '3c6653dbe726' in docs/CHANGELOG.md

The reformatted audio.py produces byte-identical music.wav.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01SsqwtCwXUtzjLaEjTYPbhn

withrvr commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

Status after 4c19233. This PR's own pre-commit failures are fixed:

  • ruff check and ruff format on docs/brag/source/audio.py. The reformatted script still produces byte-identical audio.
  • check-added-large-files: docs/brag/brag.mp4 is now excluded.
  • typos flagged the Alembic hash 3c6653dbe726 on an existing CHANGELOG line. Typos now ignores 12-character hex revision IDs.

These checks are expected to stay red. None of the failures are in files this PR changes:

  • pre-commit (mypy and ty): both hooks type-check all of backend/app on every PR. They report missing openpyxl stubs (types-openpyxl) and **dict[str, object] arguments in tests/validate/factories.py and the tests/calculate/* tests. This PR doesn't touch the backend.
  • test-backend: Postgres refused connections on 127.0.0.1:5432, so no tests ran.
  • test-docker-compose: backend/app/collections/ shadows the standard library's collections module inside the container. import logging then fails with cannot import name 'namedtuple' from 'collections'.

The mypy and ty failures need a separate backend PR. The test-backend and test-docker-compose failures look like CI/environment problems: Postgres isn't reachable, and the package name collides with the standard library's collections.


Generated by Claude Code

@withrvr
withrvr merged commit 7996b12 into master Oct 8, 2026
9 of 13 checks passed
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.

2 participants