Viral Captions And Ctas
vyralcontent/content-skills
Write captions, on-screen text, hashtags, and CTAs for short-form video that earn saves and sends without tripping engagement-bait penalties.
Plans, produces or diagnoses evidence-backed product demo videos: script, capture plan, pacing checks and verified final media built on real product behavior.
$ npx skills add majiayu000/spellbook --skill build-product-demo -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install majiayu000/spellbook build-product-demo --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/majiayu000/spellbook.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/build-product-demo .claude/skills/build-product-demo && 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 "build-product-demo" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/build-product-demo into .claude/skills/build-product-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-product-demo", 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/majiayu000/spellbook/tree/main/skills/build-product-demoType 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 majiayu000/spellbook --skill build-product-demo -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install majiayu000/spellbook build-product-demo --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/build-product-demo .agents/skills/build-product-demo && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "build-product-demo" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/build-product-demo into .agents/skills/build-product-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-product-demo", 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 majiayu000/spellbook --skill build-product-demo -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install majiayu000/spellbook build-product-demo --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/build-product-demo .cursor/skills/build-product-demo && 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 "build-product-demo" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/build-product-demo into .cursor/skills/build-product-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-product-demo", 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/majiayu000/spellbook.git --path skills/build-product-demo--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 majiayu000/spellbook --skill build-product-demo -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install majiayu000/spellbook build-product-demo --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/build-product-demo .gemini/skills/build-product-demo && 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 "build-product-demo" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/build-product-demo into .gemini/skills/build-product-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-product-demo", 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 majiayu000/spellbook build-product-demoInstalls 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 majiayu000/spellbook --skill build-product-demo -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/build-product-demo .github/skills/build-product-demo && 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 "build-product-demo" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/build-product-demo into .github/skills/build-product-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-product-demo", 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 majiayu000/spellbook --skill build-product-demo -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install majiayu000/spellbook build-product-demo --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/build-product-demo .opencode/skills/build-product-demo && 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 "build-product-demo" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/build-product-demo into .opencode/skills/build-product-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-product-demo", 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.
build-product-demoPlans, produces or diagnoses evidence-backed product demo videos: script, capture plan, pacing checks and verified final media built on real product behavior.
The skill works in three modes. Plan produces a brief, evidence inventory, feature coverage, director treatment, script and beat plan. Produce adds deterministic setup and capture tooling, recording, editing and verification of the final media, and is the default when you ask to make or finish a demo. Diagnose finds the first broken layer in an existing demo, from truth and story through narration alignment to capture and encoding, and fixes the smallest responsible artifact.
It begins by fixing the product repository, revision, audience, duration, aspect ratio and language, and by naming one audience doubt and the observable change that answers it. Every claim is graded by evidence level, such as fresh live execution, and fixture use must be disclosed. Scripts analyze_demo_pacing.py, probe_demo_media.py and validate_demo_plan.py support checks. It is not for fictional ads, general editing or documentation-only tutorials.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ed52af7. 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 3 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Product Demo Builder loads about 3.3k tokens when it runs, and up to ~8.3k if it reads all its reference files. Until then it costs about 156 tokens; SKILL.md has 1,652 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 majiayu000/spellbook at commit ed52af7, republished under its MIT licence (© majiayu000). 1,652 words, ~3,309 tokens.
.claude/skills/build-product-demo/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.Turn verified product behavior into a compact proof story. Treat the final media as an executable claim about the product, not as a decorated feature list.
If the user asks to “make” or “finish” the demo, default to Produce. Do not stop at a script while safe, in-scope production work remains.
Resolve the exact product repository, revision, runtime, audience, channel, target duration, aspect ratio, language, available assets, and publishing scope. Inspect before guessing.
Read repository instructions and existing demos, screenshots, tests, fixtures, launch scripts, and marketing claims. Search before adding a new recorder or seed path.
Separate immutable product facts, creative choices, and missing production facts. Do not turn an unknown into a visual claim.
Select one reference benchmark: the user's strongest previous demo, a product-native launch video, or a clearly named quality bar. Record what to preserve and what to avoid. Do not rely on generic taste words.
Choose one audience doubt and one proof proposition. Complete:
The audience doubts whether [product claim]. The demo proves [outcome] by showing [observable change].
Define the opening and landing state. Reject a concept whose product or audience state is materially unchanged at the end.
Read directing.md before selecting features or writing beats. Read production.md before recording, generating narration, or using deterministic fixtures.
Classify every candidate claim:
| Level | Evidence | Demo use |
|---|---|---|
| E1 | Fresh live execution with retained output | May be shown as working |
| E2 | Current code plus focused passing test or fixture replay | May support a bounded claim; disclose fixture use |
| E3 | Current documentation or marketing copy only | Treat as a lead; verify before showing as working |
| E4 | Plan, issue, mockup, or unfinished path | Exclude or label explicitly as planned |
Create feature-coverage.md and rank each capability as:
Do not modify product behavior merely to make the demo pass unless the user also asked for that product change.
Write a compact treatment with:
Audience doubt:
Proof proposition:
Opening state:
Turning proof:
Landing state:
Point of view:
Information strategy:
Visual progression:
Sound strategy:
Truth boundary:
Production simplification rule:Lead with the strongest result when it is legible without setup, then return to a credible starting state. Organize chapters by user outcome or proof question, not by toolbar location. Require each chapter to leave visible accumulated state or decisive new knowledge.
Write the native interaction spine before any title, mockup, or compositing:
real starting state → user input → native product response → consequential result
For software demos, show the actual CLI, application, host integration, API consumer, or generated artifact named in the proposition. Evidence generated backstage and retyped into a presentation layer does not count as native use. Target at least 60% native product surface, place the first meaningful product action within five seconds, and keep explanatory/title surfaces below 20% unless the medium makes those ratios inapplicable and the plan records why.
Write one beat for each meaningful tactic, product action, reveal, consequence, or attention shift. A click is not a beat unless it changes the proof. Pair narration about value or consequence with an observable action; do not read the interface aloud.
Treat beats as actions and revelations, never equal time boxes. Record multiple observable events inside a longer beat. Default to no more than three seconds between visible or audible events for a promotional demo; a motivated hold is the only exception.
Save the plan as beat-plan.json using
artifact-contract.md, then run:
python3 <skill-dir>/scripts/validate_demo_plan.py <demo-dir>/beat-plan.jsonFix plan failures before recording. Do not hide gaps in post-production.
For every cut, finish:
Cut from [state/action] to [new state/action] because the audience now needs to [learn/feel/locate/compare/anticipate].
Shorter is not automatically faster. Remove unexplained waiting, duplicated information, cursor travel with no consequence, and narration that finishes before the corresponding action begins. Preserve enough time to orient, see the action, register the result, and anticipate the next beat.
When diagnosing “slow” or “stuck” pacing, locate the first mismatch:
Repair the mismatch instead of globally speeding up the video.
Run the plan validator again after the edit reflects any timing changes. Probe the final video with:
python3 <skill-dir>/scripts/probe_demo_media.py <final-video> \
--expect-width <width> --expect-height <height> --expect-fps <fps> \
--expect-duration <duration_seconds> --expect-container <container> \
--expect-video-codec <video_codec> --expect-audio-codec <audio_codec> \
--duration-tolerance <duration_tolerance_seconds> \
--require-audioSet delivery.duration_tolerance_seconds to 0.25 normally. A larger encoding
variance requires delivery.duration_tolerance_reason; pass the same declared
tolerance to the probe. The pacing analyzer derives it from the plan.
Also inspect the full video or a contact sheet for frozen frames, clipped UI, unreadable type, secret leakage, missing chapters, broken focus, abrupt audio, and claims whose evidence is not visible. A playable file with valid codecs is necessary but not sufficient.
Run the pacing analyzer for promotional video:
python3 <skill-dir>/scripts/analyze_demo_pacing.py <final-video> \
--plan <demo-dir>/beat-plan.json \
--json-out <demo-dir>/pacing-verification.jsonTreat its default silence and low-motion limits as a fail-closed rehearsal gate. The analyzer exempts a silence or low-motion segment only when the entire detected interval falls inside a motivated hold declared by the plan; do not raise a file-wide threshold to accommodate one hold. It rejects alternate audio or video streams because those tracks are not pacing-verified; deliver exactly one of each. Review continuous playback or dense consecutive frames as well as a contact sheet; one frame per scene can make a static slide deck look varied.
Deliver the files defined in artifact-contract.md and state which claims used live execution, deterministic fixtures, or compositing.
validate_demo_plan.py with no unexplained gap, overlap,
idle interval, or missing state change.probe_demo_media.py and a visual/audio review.analyze_demo_pacing.py; silence and low-motion spans
stay inside the declared attention contract.Representative prompts live in evals/evals.json. When a real run exposes a repeated false-success signal, pacing gap, truth-boundary mistake, or missing verification, patch the smallest responsible instruction, reference, validator, or eval before treating the workflow as mature.
© majiayu000, MIT. 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 8 other files (scripts, references) in skills/build-product-demo of majiayu000/spellbook.
Open the folder on GitHubat commit ed52af7
Product Demo Builder 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 |
|---|---|---|---|---|---|---|
| Product Demo Builder this skillmajiayu000/spellbook | 287 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Viral Captions And Ctasvyralcontent/content-skills | 134 | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Viral Short Form Ideasvyralcontent/content-skills | 134 | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Weekly Changelog Videoheygen-com/hyperframes | 60k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Faceless Explainer Videoheygen-com/hyperframes | 60k | 3 repos | ~7.7k | Automated safety check: Notes | Apache-2.0 | |
| Taisly Social Media Postingtaisly/agent | 217 | 1 repos | ~1.5k | Automated safety check: Pass | MIT |
vyralcontent/content-skills
Write captions, on-screen text, hashtags, and CTAs for short-form video that earn saves and sends without tripping engagement-bait penalties.
vyralcontent/content-skills
Generate short-form video ideas at volume and stop the blank-page problem for good.
heygen-com/hyperframes
Turns a weekly changelog markdown file into a branded HyperFrames video with voiceover, animated mock-UI scenes and captions, using fonts, background and scripts bundled in the skill.
heygen-com/hyperframes
Turns an article, notes or a topic brief into an explainer video whose visuals are invented per scene, built frame by frame in HyperFrames with no footage.
taisly/agent
Free AI-first short-form video publishing to TikTok, Instagram Reels, YouTube Shorts, X, and Facebook from AI agents through Taisly.
nateherkai/hyperframes-student-kit
Turn talking-head footage into a finished reel, YouTube Short, or short advertisement with curiosity-led openings, earned payoffs, story-driven cuts, transcript-synced motion graphics, moving…
majiayu000/spellbook
Audits and repairs how coding-agent Skills are owned, copied and exposed across runtimes, from canonical sources to quarantine and retirement.
majiayu000/spellbook
Scans a repository for real evidence and proposes, or on request writes, a small stack of root and scoped AGENTS.md files with validation commands and generated-file boundaries.
majiayu000/spellbook
Single entry point that routes long or ambiguous agent tasks, checks live state, bounds autonomous loops and leaves a resumable handoff.
majiayu000/spellbook
Scans a repository, its lockfiles and node_modules for known malicious npm package versions and install-time indicators, using a read-only Python scanner.
majiayu000/spellbook
Product management helpers: a RICE scoring script, an interview transcript analyzer and PRD templates for prioritizing features, synthesizing research and writing requirements.
majiayu000/spellbook
Audits a repository's agent-readable context, from AGENTS.md and CLAUDE.md to skills and PRODUCT or TECH specs, and recommends the smallest useful improvements.
Categories
Plans, produces or diagnoses evidence-backed product demo videos: script, capture plan, pacing checks and verified final media built on real product behavior. The skill works in three modes. Plan produces a brief, evidence inventory, feature coverage, director treatment, script and beat plan.
Product Demo Builder fits situations like: planning a launch video that proves what a product does; recording a repeatable screen walkthrough of an app; fixing narration that drifts from the on-screen action; cutting dead time from an existing product demo.
Run `npx skills add majiayu000/spellbook --skill build-product-demo -a claude-code`. Or copy the skill folder (skills/build-product-demo in majiayu000/spellbook) into .claude/skills/build-product-demo in your project. Claude Code loads it when a task matches its description.
Run `npx skills add majiayu000/spellbook --skill build-product-demo -a codex`. Or copy the skill folder (skills/build-product-demo in majiayu000/spellbook) into .agents/skills/build-product-demo 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 majiayu000/spellbook --skill build-product-demo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-product-demo, .gemini/skills/build-product-demo, .github/skills/build-product-demo and .opencode/skills/build-product-demo in your project.
Going by SKILL.md and its folder, Product Demo Builder needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: The product's repository and runtime, so real behavior can be captured; Python to run the bundled pacing, media and plan scripts.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Product Demo Builder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k 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 5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Product Demo Builder: Viral Captions And Ctas (vyralcontent/content-skills, 134 stars), Viral Short Form Ideas (vyralcontent/content-skills, 134 stars), Weekly Changelog Video (heygen-com/hyperframes, 60k stars) and Faceless Explainer Video (heygen-com/hyperframes, 60k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
majiayu000 (a GitHub user) maintains it in majiayu000/spellbook, which has 287 GitHub stars. The repository holds 97 skills in this directory. The repository was last updated on October 8, 2026.
Source: majiayu000/spellbook on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.