pr-to-video
pr-to-video - dispatch entry
Input is a GitHub pull request (a code change), supplied as a PR URL, an <owner>/<repo>#<N> ref, or "this PR" while a repo with an open PR is checked out. Output is a code-change explainer: what shipped, why, and how it works — rendered from the diff/commits as before-after, diff-highlight, file-tree, and impact scenes. Default length up to ~3 min (sweet spot ~30-90s); a genuinely longer or exhaustive every-file walkthrough (5 min+) is a different register → /general-video. There is no website scrape and no headless Chrome for ingest — ingest is the gh CLI. The shipped style preset is always claude (warm editorial; signature navy code window).
Confirm the route before Step 0. This skill explains a GitHub pull request (a code change read via
gh). If the input is a marketing / product site →/product-launch-video; a general website →/website-to-video; a topic / article with no PR →/faceless-explainer; a whole-repo tour or multi-PR release →/general-video. Out of scope: live / at-render-time data — PR facts are read once at author time and baked in. Handed a non-PR input, or unsure? Read/hyperframes-read-firstfirst.
This workflow owns only the PR-specific front (ingest + story-design); every phase marked shared reuses the engine copied from faceless-explainer unchanged (it lives under this skill's own scripts/ + agents/ + phases/, so <SKILL_DIR> resolves to pr-to-video).
All artifacts go to PROJECT_DIR = videos/<project-name>/ (created in Step 0); all paths below are relative to it. Dispatch is harness-portable: before the first subagent dispatch, read <SKILL_DIR>/../hyperframes-core/references/subagent-dispatch.md once — it maps the dispatch verbs (parallel fan-out / background / wait) to your harness's primitives; a concurrency cap below N means waves of the cap size, never fewer workers. This file is a binding runbook, not background reading: execute the steps in order and produce every phase artifact with its designated script or agent role — do not substitute a freestyle pipeline, and do not skip a pause step because the request seems clear. A step you cannot perform → stop and report.