Docs

Demo

The demo workflow turns a PR or feature into a short, polished demo video. It drives the repo's web UI in a real headless Chromium, screen-records the session, and composites a titled, size-capped mp4 the maintainer can watch inline on the originating issue/PR (and in the dashboard Artifacts view). It never modifies code.

Permission profile: issues-write — can read repo contents and post a comment with the embedded video; it never pushes code.

Pipeline

Demo record UI + composite mp4

What it does

  • Reads the PR (description, diff, linked issue) to decide what to prove and how — a single walkthrough or a before/after comparison
  • Installs and runs the repo's dev-server, then drives the web UI in a real headless Chromium
  • Screen-records the session (Playwright recordVideosession.webm)
  • Composites the recording into a titled, size-capped (≤ 5 MB) mp4 with ffmpeg — title card, optional before/after side-by-side, trim/speed — via the bundled compose-demo.sh
  • Embeds the playable video inline on the issue/PR comment and in the dashboard Artifacts view
Gated to the Docker QA image, silently skipped elsewhere. The demo phase runs only on a Docker host with the browser-QA image built (Playwright + Chromium + ffmpeg baked in). On gondolin, or a host without that image, the phase is silently skipped (graceful degradation) and the run completes without a video — it never fails the trigger. Compositing is ffmpeg-only — there is no Remotion / cinematic pipeline. Web/Electron targets only; for a CLI, a curl-able API, or pure pass/fail evidence use qa-test / verify.

Triggers

  • GitHub: a maintainer comment @last-light demo [notes] on an issue or PR, or a natural-language request the classifier reads as a demo intent ("record a demo of the new dashboard", "make a before/after video of the fix")
  • Slack: a message classified as a demo intent against a managed repo
  • CLI: lastlight demo owner/repo#N -- "<notes>"

Skills

This workflow uses the demo skill (the director procedure and the compose-demo.sh ffmpeg wrapper) plus the browser-qa skill (the bundled Playwright driver, in its --record-dir recording mode) and the building skill (install + run the repo's dev-server).