Pull Request Explainer Video
heygen-com/hyperframes
Turns a GitHub pull request into a code-change explainer video built from its diff, commits and files, rendered with HyperFrames.
Produces narrated Orchard Core videos (feature walkthroughs, module overviews, pull request demos) with one unified look and specification - 1080p, Orchard Core logo, colors and fonts, the same…
$ npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-video-producer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/orchardcore-video-producer .claude/skills/orchardcore-video-producer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "orchardcore-video-producer" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-video-producer into .claude/skills/orchardcore-video-producer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-video-producer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-video-producerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-video-producer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/orchardcore-video-producer .agents/skills/orchardcore-video-producer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "orchardcore-video-producer" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-video-producer into .agents/skills/orchardcore-video-producer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-video-producer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-video-producer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/orchardcore-video-producer .cursor/skills/orchardcore-video-producer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "orchardcore-video-producer" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-video-producer into .cursor/skills/orchardcore-video-producer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-video-producer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/OrchardCMS/OrchardCore.git --path .agents/skills/orchardcore-video-producer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-video-producer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/orchardcore-video-producer .gemini/skills/orchardcore-video-producer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "orchardcore-video-producer" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-video-producer into .gemini/skills/orchardcore-video-producer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-video-producer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install OrchardCMS/OrchardCore orchardcore-video-producerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/orchardcore-video-producer .github/skills/orchardcore-video-producer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "orchardcore-video-producer" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-video-producer into .github/skills/orchardcore-video-producer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-video-producer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-video-producer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/orchardcore-video-producer .opencode/skills/orchardcore-video-producer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "orchardcore-video-producer" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-video-producer into .opencode/skills/orchardcore-video-producer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-video-producer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
orchardcore-video-producerProduces narrated Orchard Core videos (feature walkthroughs, module overviews, pull request demos) with one unified look and specification - 1080p, Orchard Core logo, colors and fonts, the same…
Orchardcore Video Producer is an agent skill from OrchardCMS/OrchardCore. Produces narrated Orchard Core videos (feature walkthroughs, module overviews, pull request demos) with one unified look and specification - 1080p, Orchard Core logo, colors and fonts, the same neural voice, captions, and an encode under 10 MB. Use when asked to record, narrate, or produce a video or screencast of Orchard Core, or to add one to the docs or a pull request.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files, including scripts and reference files (for example `examples/secrets-module/slides.py`, `examples/secrets-module/storyboard.json` and `references/recording.md`).
It sits in Media & Creative, covering Pull requests and Text to speech and voice. It works with FFmpeg. The repository describes itself as: Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework. The licence is BSD-3-Clause.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit bfbe92f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 9 files in scripts/ (Python and C#), which the agent can run.
Shell commands in SKILL.md call:
pythondotnetpippwshFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Orchardcore Video Producer loads about 2k tokens when it runs, and up to ~5.8k if it reads all its reference files. Until then it costs about 100 tokens; SKILL.md has 841 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from OrchardCMS/OrchardCore at commit bfbe92f, republished under its BSD-3-Clause licence (© OrchardCMS). 841 words, ~1,951 tokens.
.claude/skills/orchardcore-video-producer/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.Every Orchard Core video looks and sounds the same: the same resolution, branding, layout, voice, captions, and
encoding. This skill holds that specification and the scripts that apply it. Don't change the specification for a
single video. If it must change, change it here, in scripts/brand.py, scripts/narrate.py and
scripts/assemble.py, and in references/specs.md, so every later video follows.
The worked example in examples/secrets-module/ is the storyboard and slides of the Secrets module video, published
with the documentation of the Secrets module. Read it before writing a new one.
| Output | 1920x1080, 30 fps, H.264 (-preset slow -crf 33 -tune stillimage), AAC 64 kbps mono, +faststart, under 10 MB |
| Recording | Chromium at 1536x864 CSS pixels, device scale 1.25, light color scheme, en-US, shown at 1728x972 in a green frame |
| Branding | Dark background with green glows, Orchard Core logo (white name, green symbol), Open Sans from src/docs/reference/branding/assets/fonts |
| Colors | Green #41B670 (accents, frame, highlights, cursor clicks), dark green #1D5B36, charcoal #404041, gray #C6C6C6, white |
| Voice | en-US-AndrewMultilingualNeural, rate +2%, through edge-tts |
| Structure | Opening card, numbered chapters (chapter card + slides or recordings), closing card |
| Captions | WebVTT and SRT, from the narration, at most about 13 words each |
The full specification, with every value and the reasons behind them, is in references/specs.md.
pip install pillow pygments imageio-ffmpeg edge-tts (ffmpeg comes with imageio-ffmpeg).pwsh <bin>/playwright.ps1 install chromium once).references/recording.md.edge-tts calls the Microsoft Edge speech service).Use the session's scratchpad or a temp folder, never the repository: frames and audio are large, and the recorder must not pick up the repository's build settings.
<workspace>/
storyboard.json the chapters, clips and narration (see references/storyboard.md)
slides.py the slides, if the storyboard has "slide" clips
recorder/ a copy of scripts/recorder, with your scenes in Scenes.cs
audio/ generated: one mp3 per step
durations.json generated: the length of each step's narration
clips/<clip>/ generated: the frames and timeline.json of each recording
build/ generated: intermediate segments, and master.mp4
<output>.mp4/.vtt/.srt the resultStart from examples/secrets-module/storyboard.json and slides.py, and copy scripts/recorder into the workspace.
Read references/storyboard.md first. In short:
python .agents/skills/orchardcore-video-producer/scripts/narrate.py <workspace>It writes audio/ and durations.json. Run it again after any change to the text: only the changed steps are
generated again. Record after narrating, since the recorder holds each step for the length of its narration.
If the voice mispronounces a word, add it to SPOKEN in scripts/narrate.py (for every video) or to "spoken" in
the storyboard (for this one). The captions keep the written form. Have a person confirm a new spelling before
using it: make a pronunciation sample, a few seconds per candidate spelling, and ask which option sounds right.
Rebuilding a whole video to try a spelling wastes minutes per attempt.
python .agents/skills/orchardcore-video-producer/scripts/pronounce.py asp-net.mp4 "It encrypts secrets with {} Core Data Protection." "ASP.NET" "A.S.P. .NET" "A-S-P dot net" "A S P dot net"Letters said one by one are written as an abbreviation with periods, such as "A.S.P.": the voice spells it at an even pace. With spaces ("A S P"), the letters run together; with commas ("A, S, P"), the pauses are uneven. "ASP.NET" is spoken as "A.S.P. .NET".
Write one method per "clip" in recorder/Scenes.cs, with one scene.StepAsync("<step id>", ...) per step, in the
storyboard's order. See references/recording.md for the scene API, the site to record, and the pitfalls. Then:
cd <workspace>/recorder && dotnet build
export VIDEO_ROOT=<workspace> VIDEO_BASE_URL=http://localhost:5010
<bin>/Recorder setup # logs in, once
<bin>/Recorder record all # or the names of some clips
python .agents/skills/orchardcore-video-producer/scripts/review.py <workspace> <clip>Look at every contact sheet (shots/<clip>.jpg) before assembling: the frame at the end of each step must show what
its narration describes.
python .agents/skills/orchardcore-video-producer/scripts/assemble.py <workspace>It prints the length and size. If it's over 10 MB, shorten the video, or raise the CRF one step at a time
(CRF=34 python .../assemble.py <workspace>) and check that text stays readable. Extract a few frames with ffmpeg
and look at them: a recording, a slide with code, and a card.
Documentation: put <name>.mp4, <name>.vtt and a poster (build/<opening card>.png saved as JPEG) in a
videos/ folder next to the page, and embed it under the introduction of the page:
<video controls preload="metadata" width="100%" poster="videos/<name>.jpg">
<source src="videos/<name>.mp4" type="video/mp4">
<track kind="captions" src="videos/<name>.vtt" srclang="en" label="English">
Your browser does not support embedded videos. <a href="videos/<name>.mp4">Download the video</a>.
</video>Introduce it with one sentence that says what it covers, without "new". Check the page with mkdocs build.
Pull request: GitHub only accepts videos through its web uploader (drag and drop, or the attachment button
of the description editor), up to 10 MB on free plans. The upload gives a https://github.com/user-attachments/assets/...
URL: put it alone on a line near the top of the description, so GitHub shows a player.
Stop the site you recorded, remove any emulator containers and throwaway projects, and keep the workspace until the video is accepted, in case a step must be re-recorded.
references/specs.md: the full specification.references/storyboard.md: the storyboard format, and how to write the narration and the slides.references/recording.md: the site to record, the recorder, the scene API, and pitfalls.scripts/brand.py: the branding, the layout, and the slide building blocks.scripts/pronounce.py: a pronunciation sample, to confirm the spelling of a word the voice misreads.examples/secrets-module/: a complete storyboard and slides.© OrchardCMS, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 14 other files (scripts, references) in .agents/skills/orchardcore-video-producer of OrchardCMS/OrchardCore.
Open the folder on GitHubat commit bfbe92f
Orchardcore Video Producer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Orchardcore Video Producer this skillOrchardCMS/OrchardCore | 8.2k | — | ~2k | Automated safety check: Pass | BSD-3-Clause | |
| Pull Request Explainer Videoheygen-com/hyperframes | 60k | 2 repos | ~8.4k | Automated safety check: Notes | Apache-2.0 | |
| TSX Vertical Shorts Builderhassancs91/claude-faceless-shorts-creator | 271 | — | ~1.9k | Automated safety check: Notes | MIT | |
| Release Videohuytieu/COG-second-brain | 1.3k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Vox DirectorAlisa0808/vox-director | 2.2k | — | ~5.6k | Automated safety check: Pass | MIT | |
| ElevenLabs Voiceover Generatordigitalsamba/claude-code-video-toolkit | 2.2k | 1 repos | ~2.7k | Automated safety check: Notes | MIT |
heygen-com/hyperframes
Turns a GitHub pull request into a code-change explainer video built from its diff, commits and files, rendered with HyperFrames.
hassancs91/claude-faceless-shorts-creator
Builds a roughly 40-second vertical short end to end from a topic, scripting beats, rendering TSX compositions and layering voice and captions.
huytieu/COG-second-brain
Turn a product release (the list of shipped items plus real screen recordings) into a motion recap video and one explained demo per feature, with sound effects tied to on-screen motion and a…
Alisa0808/vox-director
Turn ONE topic into a finished Vox-style paper-collage explainer / ad video, end to end on the Atlas Cloud API + local ffmpeg — script, collage keyframes, motion, voice-over, music, captions, all…
digitalsamba/claude-code-video-toolkit
Generates narration, sound effects and cloned voices through the ElevenLabs API, with model and setting choices tuned to the content's style.
limin112/min-skill
Build a narrated explainer video from a concept — discussion → structure → HTML slide deck → narration script → TTS voice → subtitles → background music → Playwright screen recording → ffmpeg…
OrchardCMS/OrchardCore
Creates and updates OrchardCore admin edit views using the ocat- CSS class conventions.
OrchardCMS/OrchardCore
Builds, watches, and manages frontend assets in OrchardCore.
OrchardCMS/OrchardCore
Creates and updates OrchardCore data migrations (DataMigration classes with CreateAsync/UpdateFromX).
OrchardCMS/OrchardCore
Controls how OrchardCore renders content — placement.json rules, display drivers, shapes, zones, alternates, and editor groupings (tabs/cards/columns).
OrchardCMS/OrchardCore
Authors OrchardCore documentation — MkDocs Material pages, module README docs, nav entries, admonitions, tabbed content, and redirects.
OrchardCMS/OrchardCore
Localizes OrchardCore apps — UI strings (IStringLocalizer/IViewLocalizer S, T, H), PO files and pluralization, content translation (LocalizationPart, culture picker), and supported-culture…
Works with
Categories
Produces narrated Orchard Core videos (feature walkthroughs, module overviews, pull request demos) with one unified look and specification - 1080p, Orchard Core logo, colors and fonts, the same…. Orchardcore Video Producer is an agent skill from OrchardCMS/OrchardCore. Produces narrated Orchard Core videos (feature walkthroughs, module overviews, pull request demos) with one unified look and specification - 1080p, Orchard Core logo, colors and fonts, the same neural voice, captions, and an encode under 10 MB.
Orchardcore Video Producer fits situations like: asked to record; produce a video; screencast of Orchard Core; add one to the docs.
Run `npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a claude-code`. Or copy the skill folder (.agents/skills/orchardcore-video-producer in OrchardCMS/OrchardCore) into .claude/skills/orchardcore-video-producer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a codex`. Or copy the skill folder (.agents/skills/orchardcore-video-producer in OrchardCMS/OrchardCore) into .agents/skills/orchardcore-video-producer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OrchardCMS/OrchardCore --skill orchardcore-video-producer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/orchardcore-video-producer, .gemini/skills/orchardcore-video-producer, .github/skills/orchardcore-video-producer and .opencode/skills/orchardcore-video-producer in your project.
Going by SKILL.md and its folder, Orchardcore Video Producer needs Python and C# for the scripts in its folder and the command-line tools its instructions call (python, dotnet, pip and pwsh). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Orchardcore Video Producer is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Orchardcore Video Producer: Pull Request Explainer Video (heygen-com/hyperframes, 60k stars), TSX Vertical Shorts Builder (hassancs91/claude-faceless-shorts-creator, 271 stars), Release Video (huytieu/COG-second-brain, 1.3k stars) and Vox Director (Alisa0808/vox-director, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OrchardCMS (a GitHub organization) maintains it in OrchardCMS/OrchardCore, which has 8,193 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 10, 2026.
Source: OrchardCMS/OrchardCore on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.