Repository navigation
feat(assets): add explain-video skill - #197
Prithpal-Sooriya wants to merge 4 commits into
Conversation
| `export const fps = ${fps};`, | ||
| `export const timelineUrl = ${JSON.stringify(url(timelinePath))};`, | ||
| `export const configUrl = ${JSON.stringify(url(join(projectRoot, "videowright.config.ts")))};`, | ||
| `export const segmentLoaders = {\n${ids.map((id) => ` ${JSON.stringify(id)}: () => import(${JSON.stringify(url(join(segmentsDir, id, "index.ts")))})`).join(",\n")}\n};`, |
Sync vw.ts from tiny-video-renderer v0.2.2 (upstream: Prithpal-Sooriya/tiny-video-renderer#2), fixing the four CodeQL alerts on the vendored renderer: - uncontrolled data in path expressions (x2): request paths no longer reach the filesystem; the server indexes servable files at startup (with the TS import fallbacks) and answers requests by exact map lookup, so traversal and absolute paths simply miss - improper code sanitization: segment directory names are allowlisted ([A-Za-z0-9_-]+) before being interpolated into the generated virtual module - information exposure: 500 responses no longer echo raw error messages; the reason goes to the server log only Rendering output is unchanged: a 610-frame render of a real project is bit-identical (video and audio stream hashes) before and after, and the skill's tests still pass. skill.md pin updated to v0.2.2 (sha256 116d1dba33e2b91aebb2c5afa407ff299977d473fb7729c3789e6909a64b7fc9).
|
Two updates to this PR: 1. Corrected the pitch body. The "Is local setup annoying?" answer wrongly claimed the pipeline "runs inside standardized Docker containers or CI runners." That was false — everything is local-only, and an agent drives the entire install ( 2. Fixed the four CodeQL alerts on
Once the upstream PR merges it will be tagged |
…deo-renderer v0.2.2 The style.css is unchanged between v0.2.1 and v0.2.2 (pinned sha c2f5f7e9… still verifies); the URL now matches the release the renderer is vendored from.
Same sync as Cloud-Agent-Memory#296 / MetaMask-TODOs#28: code-scan fixes from Prithpal-Sooriya/tiny-video-renderer#3 (log-forging closed, jsLiteral escaping for generated code, virtual module import via a variable). Rendering output is bit-identical; pin and style URL move to the v0.2.3 tag.
|
Re-rendered the walkthrough with the v0.2.3 renderer bundled in this PR — the video above is new. What changed since the first render:
Dogfood ledger for this render: |
🎬 explain-video: PR and doc walkthroughs as short narrated videos (Phase 1)
What this PR does
Moves the custom
explain-videoagent skill intodomains/assets/skills/explain-video/, restructured to this repo's bundle layout (skill.md+references/+scripts/+assets/) so it survivestools/installintact:skill.md— the router: profile inference (code-change / technical-doc / product-doc), depth, script style, theme, approval gate, production pipeline.references/— facts ledger rules, script style, PR triage, pronunciation lexicon, and the three content profiles.scripts/— the local pipeline: Kokoro speech prep, synthesis, segment timing, Whisper audio verification, facts verification, one-time setup, and the pinned single-file renderer (render/vw.ts, a hash-verified copy of tiny-video-renderer v0.2.3, MIT, derived from Videowright) plus its Python tests.assets/styles/— the three themes: MetaMask, MetaMask Developer, Motion Engineering.Marked
maturity: experimental— opt-in, likeacceptance-criteria-doc. Verified locally: skill linter 0 errors, 43/43 Python tests pass from the new layout, and an installer smoke test ships the full bundle (renderer, styles, profiles, lexicon) to Claude / Cursor / Agents with all paths resolving.And yes — the video at the bottom of this description was generated by the very skill this PR adds. We dogfooded it for the pitch.
Video Walkthrough
Generated by the skill this PR adds — a pipeline walkthrough in the
metamask-developertheme, rendered end-to-end by the v0.2.3 renderer bundled in this PR.explain-video-v023.mp4
🤖 AI-generated walkthrough — script, animation, and voice made by an agent
1. The problem, and the philosophy
Review fatigue is real. Agents and humans are generating more PRs and longer descriptions every sprint. Plain text is the slowest medium for human comprehension — we are drowning in walls of text, and a 600-line diff description is a cognitive bottleneck before anyone reads a single line of code.
The Rung 4 shift. Per Andrej Karpathy's framing of LLM output mediums, bespoke video walkthroughs sit above plain text: a 90-second to 2-minute narrated video lets a reviewer passively digest the intent of a change before diving into the raw diff. Video is the cognitive primer — the mental map. It also serves visual and auditory learners on the team who get nothing extra from another paragraph.
The PR complexity benchmark. Here's the part engineers will like: if the agent struggles to generate a clear, concise 2-minute walkthrough of a PR, that is a flashing red sign that the PR is too complex and needs to be split. The video is a complexity smoke test.
2. How we use it — scope and guardrails
3. Hardened answers to the skepticism
scripts/setup.shprovisions the Python environment, the local Kokoro TTS model (82M parameters, no cloud voice, no voice cloning) and ffmpeg; the renderer needs no npm install: Node 22.18+, Chrome, ffmpeg. Nothing requires Docker or a CI runner.4. Try it (engineers and PMs)
Then ask your agent:
The Phase 1 ask: try it on your next substantive PR or your next doc readout, and tell us where it breaks. That feedback decides whether this graduates from
experimental.