scosman/videowright/components
Claude Code and agent skill by scosman/videowright
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install scosman/videowright/componentsSKILL.md
Component: Skill
The Claude Code agent skill that teaches Claude to use Videowright fluently. Content, not code.
Purpose and Scope
Owns:
skill/SKILL.md— entry point with frontmatter and dispatch.skill/references/*.md— focused topic docs the agent loads on demand.skill/assets/— file templates the skill copies into consumer repos (hello-world video, demo template, framework starters).- The setup-flow conversation pattern (functional spec §10.1).
Not owned:
- Lib runtime → all other component docs.
- Setup-step behavior (which is enforced as user-driven prompting, not automation). The skill provides prompts; the agent (Claude) drives.
Public Interface
The skill is consumed by Claude Code via discovery of skill/SKILL.md. End-user-facing surface:
- The user installs the skill (referenced from
.claude/CLAUDE.mdin their consumer repo) — see Installation below. - The user makes natural-language requests ("make me a video about X", "edit the intro segment", "match the style of last quarter's launch video"); the skill triggers and the agent works.
Internal Design
File layout
The skill lives inside the videowright npm package, at packages/lib/skill/. It ships in the published tarball (package.json#files includes "skill"), so node_modules/videowright/skill/SKILL.md is the canonical reference path in any consumer repo.
.tmpl suffix marks files the skill copies into consumer repos with light variable substitution (e.g. {{video_name}}). Substitution rules and variable list are defined in references/setup.md.
There is no `framework_starters/` directory. Pre-wired framework starters were considered and rejected — the surface to maintain (React, shadcn, Three.js, echarts, GSAP, Lottie, plus whatever else users want next month) is large, and the agent already knows how to install these tools. Setup asks an open-ended question (see references/setup.md); the agent installs whatever the user names.
SKILL.md (sketch)
references/setup.md (sketch)
The setup flow prompts. Key points:
- Check intent. Before scaffolding anything, confirm with the user.
- Ask first-video name. Default
demo_video. - Ask about specific dependencies — open-ended. Default: none. The prompt should anchor with examples rather than offer a checklist:
> Do you have any specific dependencies you want set up? (default: none) > Some examples: > - "Raw HTML" — vanilla, no extra deps > - "Three.js for animations" > - "Lottie for logos" > - "React and shadcn — we want to emulate our app UI" > - "echarts for data visualizations"
The user answers freely. The agent installs whatever they name using its general knowledge of those tools — there are no pre-built templates.
- Scaffold layout. Create the consumer repo directory tree (functional spec §2), write
videowright.config.ts, set uppackage.jsonwithvideowrightplus any dependencies named in step 3. - Copy hello-world. From
node_modules/videowright/skill/assets/hello_world/intovideos/<name>/andsegments/. Apply variable substitution. - Confirm. Report what was created. Tell the user
npm install && npx videowright dev.
The reference file includes the exact prompts, fallback prompts ("if the user is unsure, suggest..."), and the variable substitution map.
references/authoring_segment.md (sketch)
Teaches the agent:
- The locked
Segmentinterface and thedefineSegmenthelper. - The single timing rule:
play()resolves when transition out can begin. Background work runs untilunmount(). - Use
waitForNextfor user-driven beats. Usehold(ms)for fixed delays. - The
setTimeout/setIntervalfootgun: works in interactive, breaks in render. Prefer rAF, CSS animations, WAAPI, GSAP. ctx.signal— pass tofetch, abort GSAP timelines, etc.- Idempotency:
play()may run multiple times across mounts. - Voiceover is a field on the segment, not separate.
- The segment receives a plain
<div>. Attach a shadow root for style isolation, or skip it if you want global CSS to cascade in. The lib doesn't prescribe. - Internal beats pattern with a worked example.
- "Any web tech welcome" — concrete examples for Three.js, animated SVG, shadcn.
references/authoring_video.md (sketch)
Teaches:
- Folder structure:
videos/<name>/timeline.ts,README.md,PLAN.md,voiceover/. timeline.tsformat with worked examples.- VO-first authoring: take a script, scaffold matching segments.
- PLAN.md workflow: read before iterating, append after meaningful changes (script revisions, design choices, user feedback). Concrete template for PLAN.md.
- Reordering = move array entries.
- Promotion is implicit (no
shared/folder); just leave segments insegments/from the start.
references/style_matching.md (sketch)
Teaches:
- Read
styles/STYLE.mdfor design notes. - Read the past video's
timeline.ts, segments, andPLAN.mdto understand what works. - Reuse from top-level
segments/,components/,transitions/,styles/— no copying. - Update
STYLE.mdwhen you discover new patterns worth keeping.
Installation
For consumer repos, the skill is installed by reference. The consumer's .claude/CLAUDE.md includes a pointer to node_modules/videowright/skill/SKILL.md. The skill scaffolds this CLAUDE.md entry as part of setup if it isn't already there.
The skill versions in lockstep with the lib — one npm install videowright gets both, no separate package to update.
Templates and variable substitution
Templates use {{var_name}} syntax. Variables resolved by setup:
| Variable | Source | |
|---|---|---|
{{video_name}} | User answer (default demo_video) | |
{{date_prefix}} | Today's date as YYYY-MM | |
{{title}} | User answer or derived from video_name | |
{{video_path}} | videos/{{date_prefix}}-{{video_name}} (if user accepts date prefix) or videos/{{video_name}} |
Quality bar
A fresh user, given the lib + this skill, reaches a working first video in under 2 minutes. The hello-world video must run on npx videowright dev immediately after scaffold.
Dependencies
Depends on:
- The lib's API surface stays stable (the skill teaches against it).
- Templates in
assets/referencevideowrightcorrectly.
Depended on by:
- End users via Claude Code.
- Quality of skill content directly affects "agent-native" UX.
Test Plan
The skill is text content; no automated tests.
Manual evaluation
- Cold-start eval. A fresh agent, given only this skill (no lib source), can scaffold a new repo and produce a working 3-segment video. Run before each release.
- Setup flow eval. A fresh agent runs the setup flow; verify it asks the locked questions in §10.1 and scaffolds correctly.
- Authoring eval. Ask the agent to write a segment with internal beats and an animated SVG; verify the result uses
defineSegment, useswaitForNext, doesn't usesetTimeout. - Style-matching eval. Build two demo videos, then ask the agent to make a third matching the second's style; verify it reads the right files.
Programmatic checks (CI)
- Templates parse as valid TS (typecheck assets directory).
- All references in
SKILL.mdresolve to existing files. - All
{{vars}}in templates appear in the substitution map (linter script).
Notes
The skill structure is explicitly revisable during implementation. If a better organization emerges (e.g. consolidating two references into one, splitting another), update freely — flag changes in the project's PLAN.md so they're traceable.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingspecs/projects/vibe_forge_v1/components/skill.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/scosman/videowright/components)