Creator · musoyangrigor
Last updated · Sep 1, 2026
Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and sc
Creator · musoyangrigor
Last updated · Sep 1, 2026
Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and sc
Creator · musoyangrigor
Last updated · Sep 1, 2026
Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and sc
Creator · musoyangrigor
Last updated · Sep 1, 2026
Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and sc
Sandbox only
Install targets
Codex install prompt
Install the "scroll-video-website" agent skill from https://github.com/musoyangrigor/scroll-video-website-skill/tree/main/scroll-video-website. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and scroll-controlled video; also optimize generated frame assets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"musoyangrigor-scroll-video-website-skill-scroll-video-website","task":"Install scroll-video-website","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Document processing
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Agent fit
Claude Code + OpenAI Agents + Browser agents
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Maintenance
fresh
8d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
26
72/100 Quality · 70/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Financial research output is not financial advice; require human review before any live investment decision
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
26 GitHub stars
Repo activity
26 stars, 3 forks
Maintenance
8d since push
License
MIT
Install
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-websiteDo not use when
Alternative
3.5K Stars
npx skills add clshortfuse/renodx --skill analysis-graphing
Alternative
2.6K Stars
npx skills add magnitudedev/magnitude --skill formulate-abstractions
Alternative
14 Stars
npx skills add aerospike/agent-skills --skill aerospike
Alternative
0 Stars
npx skills add hackyhunter/sssnack-plugin --skill sssnack
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
Agent should check
Copy prompt
Task: Use scroll-video-website in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
Install command: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
LLM text format
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install?format=text
Find alternatives
/api/skills/search?q=scroll-video-website&limit=3
Agent prompt
Use scroll-video-website for this task. Review https://www.openagentskill.com/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install, then install with: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-websiteRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/musoyangrigor-scroll-video-website-skill-scroll-video-website
LLM text
/api/registry/manifest/musoyangrigor-scroll-video-website-skill-scroll-video-website?format=text
Install alias
/api/registry/install/musoyangrigor-scroll-video-website-skill-scroll-video-website
Recommend
/api/registry/recommend?task=Use%20scroll-video-website%20in%20an%20agent%20workflow&limit=3
Agent fit
Document processing
Use-case tags
Platforms
Claude Code, OpenAI Agents, Browser agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Shortlist this skill and compare it with close alternatives before production adoption.
Role in stack
Companion skill
Primary fit
Document processing
Trust label
Strong shortlist
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
CHECK26 GitHub stars
Stars/forks activity
CHECK26 stars, 3 forks; issue activity unavailable in current metadata
Recent maintenance
PASS8d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Parse messy files
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
RenoDX workflow for creating readable analysis graphs and plots from shader math, CSVs, EXRs, LUTs, hue sweeps, tone curves, gamut comparisons, energy/scalar maps, and test-pattern statistics. Use when graphing, plotting, visualizing, comparing curves, making dark-theme matplotlib figures, or avoiding repeated one-off plot scripts.
Formulate clear semantic abstractions from desired behavior before committing to implementation. Use when designing or revising terminology, entities, boundaries, responsibilities, relationships, high-level architecture, or a plan whose foundational shapes are unclear, disputed, or constrained by the current implementation.
Work with the Aerospike core database end to end — run a local instance with Docker and verify a first write and read, build or review client code with the official SDKs (Python, Node.js, Go, Java, C#), and design or review a data model, whether from requirements or against a schema that already exists. Covers namespaces, sets, bins, primary key design, TTL and NSUP, collection data types, expressions, secondary indexes, batch and scan workflows, client policies, connection pooling, record sizing, and schema deliverables. Use when the user sets up Aerospike, writes or debugs Aerospike client code, chooses keys or models data for it, reviews an Aerospike schema before building, or evaluates it as a persistent replacement for Redis or Memcached in real-time, low-latency, feature-store, or user-profile workloads. Core database only — not Aerospike Graph, and not cluster operations, sizing, XDR, or backup and restore, which belong to Aerospike Operations documentation.
Use after creating or finishing original public-safe visual work, or when asked to discover and engage with agent-made design. Connects to sssnack.com to self-register without an invite, browse, publish SVG, image, gallery, HTML/CSS, video, or text work, vote, comment, update a profile, and recover credentials. A knowingly installed skill grants standing permission to share suitable work without another prompt.
--- name: scroll-video-website description: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and scroll-controlled video; also optimize generated frame assets. ---
# Scroll Video Website
## When to use
Use this skill when the user wants to:
- build an Apple-style scroll animation from a video; - create a scroll-controlled or scroll-scrubbed video website; - turn a product video into a cinematic landing page; - build a scrollytelling experience driven by video; - convert video into an optimized image sequence for scroll animation; - create a Canvas-based product reveal controlled by scrolling; - optimize an existing generated scroll-video frame sequence.
Do not use it for ordinary autoplay video backgrounds or unrelated scroll effects.
Create a minimal full-page experience like a product animation viewer: the page itself supplies scroll distance while a fixed canvas fills the viewport and scrubs a frame sequence derived from the user's video. The animation is the interface, not a background behind a conventional landing page.
## Invocation
This skill has two modes: build a scroll-video website from a video, or optimize an existing frame sequence. If the first argument is `optimize`, follow [references/optimize.md](references/optimize.md) and do not run the build workflow below.
Treat this concise form as a complete build request:
```text $scroll-video-website <path/to/video.mp4> ```
The video path must be the first argument after the skill name. Everything after the path is optional user direction for styling, layout, copy, or behavior:
```text $scroll-video-website ./media/product-reveal.mp4 $scroll-video-website ./media/product-reveal.mp4 use a black background and condensed typography ```
The first example means: derive the frame sequence and build the full default scroll-animation website described below. In the second, preserve the same video-driven animation architecture while following the added visual direction. Let the agent using this skill interpret and implement the rest of the prompt; this skill does not define a separate command grammar for style options.
Interpret the video path as relative to the current working directory unless it is absolute. If it contains spaces, the user should quote it. Check the exact path first. If a bare filename is not there, search the current project for an exact filename match while excluding dependency, build, cache, and VCS directories. Continue automatically when exactly one match exists. If there are no matches or multiple matches, ask the user for the precise path. Braces in `<path/to/video.mp4>` or `{video_path}` indicate a placeholder and are not part of the actual path. Do not require or interpret a `use` keyword.
Optimize an existing sequence with exactly:
```text $scroll-video-website optimize ```
The optimize command takes no path or other arguments. Inspect the current project for generated frame sequences. Continue when exactly one sequence is identifiable. If several are identifiable, show them and ask which one to optimize. If no sequence can be found or confidently recognized, tell the user that the frames folder was not found and stop.
## Establish the project and source video
Before editing:
1. Inspect the project structure, scripts, framework, styling, routing, asset conventions, and local instructions. 2. Locate the user-supplied video using the invocation rules above. If no video or path was supplied and none can be confidently identified, ask for it before implementing. 3. Reuse the existing working stack. Do not scaffold a replacement project when one already works. 4. Inspect the video's dimensions, duration, frame rate, frame count, and file size with `ffprobe` when available. 5. Preserve unrelated behavior and make the smallest coherent set of changes needed.
Do not create substitute artwork or replace the supplied footage. Avoid duplicating the source video unless the build requires it.
## Convert the video to a frame sequence
The default rendering path is a numbered WebP frame sequence, not `video.currentTime`. Extract frames into the project's public/static asset area with zero-padded names such as `frames/frame_0001.webp`.
- Preserve the source cadence up to 30 fps. For a long clip, sample it to roughly 240–300 total frames so the payload remains practical. - Preserve the source aspect ratio. Use a sensible WebP quality around 78–82 and inspect the result rather than assuming the setting is adequate. - Record the actual extracted frame count in the implementation; do not leave a guessed constant. - Prefer `ffmpeg` for extraction. A representative command is `ffmpeg -i input.mp4 -vf fps=30 -c:v libwebp -quality 80 frames/frame_%04d.webp`; adapt the input, fps, output path, and existing project tooling. - Do not delete or overwrite unrelated assets. If the destination already contains a sequence, verify that it belongs to this animation before replacing it.
Use direct paused-video seeking only when frame extraction is unavailable or the resulting frame payload is clearly unsuitable. If falling back, explain the tradeoff and retain the same fixed-stage, bidirectional, smoothed scroll behavior.
## Match the reference experience
When the user gives no additional layout or copy direction, produce a canvas-only page:
- a white page and fixed, overflow-hidden stage covering `100vw` by `100vh`; - enough invisible document height for a deliberate scrub, approximately `400vh` for an 8-second or roughly 240-frame source; - no navbar, cards, headings, calls to action, gradients, or invented marketing copy; - a canvas that fills the stage and draws each frame with `cover` geometry, centered on both axes; - a short opacity reveal only after the first frame is ready, preventing a blank-frame flash; - restrained image treatment only when it suits the footage, such as a white backdrop, a slight contrast adjustment, or `mix-blend-mode: multiply` for a white-background product render.
If the user asks for content, keep it sparse and place it over or between intentional moments in the animation without reducing the canvas's visual dominance. Do not introduce an animation dependency when native canvas and browser APIs are sufficient.
## Implement canvas scrubbing
Use a fixed or sticky stage containing an `aria-hidden` canvas. Size its backing buffer for device pixel ratio, capped around 2, while keeping drawing measurements in CSS pixels. Reset the canvas transform before applying a new DPR scale on resize so scaling does not accumulate.
Map clamped total-page progress to the complete sequence:
```js const range = document.documentElement.scrollHeight - innerHeight const progress = range > 0 ? Math.min(1, Math.max(0, scrollY / range)) : 0 targetFrame = progress * (frameCount - 1) ```
Scrolling forward must advance the animation and reverse scrolling must reverse it. Scroll and resize handlers should only update cheap measurements or the target. Run a single `requestAnimationFrame` loop and smooth a floating-point playhead with frame-rate-independent exponential interpolation:
```js const dt = Math.min((now - lastTime) / 1000, 0.1) const alpha = 1 - Math.exp(-dt * 9) currentFrame += (targetFrame - currentFrame) * alpha ```
Draw the integer frame on each side of the playhead and crossfade the next frame by the fractional remainder. Clear or paint the canvas background first, reset `globalAlpha` after drawing, and redraw on resize.
## Load frames progressively
Do not block first paint on the entire sequence:
1. Load frame 1 first, draw it, and reveal the canvas. 2. Queue evenly distributed frames across the timeline, for example every eighth frame, so seeking has a nearby fallback early. 3. Queue every remaining frame.
Track requested frames separately from loaded frames so the priority and remainder passes never request the same image twice. While a requested frame is still loading, draw the nearest loaded frame. Handle failed image loads without stalling the rest of the sequence.
Use an asset URL strategy that works with the project's base path and deployment target. Clean up scroll, resize, media-query listeners, observers, and animation frames when the owning component unmounts.
## Responsive behavior and accessibility
Keep `cover` rendering on narrow screens and accept deliberate cropping; do not distort the imagery. Check important subject placement at desktop and mobile sizes. Account for mobile viewport changes and safe areas if visible content is added.
For `prefers-reduced-motion: reduce`, stop scrubbing and hold the first suitable frame. Keep any page content accessible and do not hijack scrolling. The decorative canvas should not create redundant screen-reader content.
## Verify the result
Run the project's checks and inspect the result in a browser when available. Confirm:
- the first and last scroll positions reach the first and last extracted frames; - forward and reverse scrolling feel continuous, with no abrupt jumps, playback, flashing, or visible blank canvas; - frame requests are not duplicated and missing or slow frames use a nearby loaded fallback; - cover cropping, DPR resizing, and canvas scaling work at desktop and mobile sizes; - reduced motion holds a static frame and component cleanup is complete; - the generated sequence has the expected count, dimensions, ordering, and acceptable total size; - unrelated project behavior still works.
Finish by summarizing the experience, the extracted frame count and payload, checks run, and any remaining source-media limitation.
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for scroll-video-website, ready for a manual X post.
scroll-video-website: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas vide... 26 stars https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=x
Listing + install path for scroll-video-website: https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=x Install: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to musoyangrigor but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/audit)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
analysis-graphing
RenoDX workflow for creating readable analysis graphs and plots from shader math, CSVs, EXRs, LUTs, hue sweeps, tone curves, gamut comparisons, energy/scalar maps, and test-pattern statistics. Use when graphing, plotting, visualizing, comparing curves, making dark-theme matplotlib figures, or avoiding repeated one-off plot scripts.
3.5K Starsformulate-abstractions
Formulate clear semantic abstractions from desired behavior before committing to implementation. Use when designing or revising terminology, entities, boundaries, responsibilities, relationships, high-level architecture, or a plan whose foundational shapes are unclear, disputed, or constrained by the current implementation.
2.6K Starsaerospike
Work with the Aerospike core database end to end — run a local instance with Docker and verify a first write and read, build or review client code with the official SDKs (Python, Node.js, Go, Java, C#), and design or review a data model, whether from requirements or against a schema that already exists. Covers namespaces, sets, bins, primary key design, TTL and NSUP, collection data types, expressions, secondary indexes, batch and scan workflows, client policies, connection pooling, record sizing, and schema deliverables. Use when the user sets up Aerospike, writes or debugs Aerospike client code, chooses keys or models data for it, reviews an Aerospike schema before building, or evaluates it as a persistent replacement for Redis or Memcached in real-time, low-latency, feature-store, or user-profile workloads. Core database only — not Aerospike Graph, and not cluster operations, sizing, XDR, or backup and restore, which belong to Aerospike Operations documentation.
14 StarsSandbox only
Install targets
Codex install prompt
Install the "scroll-video-website" agent skill from https://github.com/musoyangrigor/scroll-video-website-skill/tree/main/scroll-video-website. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and scroll-controlled video; also optimize generated frame assets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"musoyangrigor-scroll-video-website-skill-scroll-video-website","task":"Install scroll-video-website","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Document processing
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Agent fit
Claude Code + OpenAI Agents + Browser agents
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Maintenance
fresh
8d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
26
72/100 Quality · 70/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Financial research output is not financial advice; require human review before any live investment decision
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
26 GitHub stars
Repo activity
26 stars, 3 forks
Maintenance
8d since push
License
MIT
Install
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-websiteDo not use when
Alternative
3.5K Stars
npx skills add clshortfuse/renodx --skill analysis-graphing
Alternative
2.6K Stars
npx skills add magnitudedev/magnitude --skill formulate-abstractions
Alternative
14 Stars
npx skills add aerospike/agent-skills --skill aerospike
Alternative
0 Stars
npx skills add hackyhunter/sssnack-plugin --skill sssnack
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
Agent should check
Copy prompt
Task: Use scroll-video-website in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
Install command: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
LLM text format
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install?format=text
Find alternatives
/api/skills/search?q=scroll-video-website&limit=3
Agent prompt
Use scroll-video-website for this task. Review https://www.openagentskill.com/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install, then install with: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-websiteRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/musoyangrigor-scroll-video-website-skill-scroll-video-website
LLM text
/api/registry/manifest/musoyangrigor-scroll-video-website-skill-scroll-video-website?format=text
Install alias
/api/registry/install/musoyangrigor-scroll-video-website-skill-scroll-video-website
Recommend
/api/registry/recommend?task=Use%20scroll-video-website%20in%20an%20agent%20workflow&limit=3
Agent fit
Document processing
Use-case tags
Platforms
Claude Code, OpenAI Agents, Browser agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Shortlist this skill and compare it with close alternatives before production adoption.
Role in stack
Companion skill
Primary fit
Document processing
Trust label
Strong shortlist
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
CHECK26 GitHub stars
Stars/forks activity
CHECK26 stars, 3 forks; issue activity unavailable in current metadata
Recent maintenance
PASS8d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Parse messy files
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
RenoDX workflow for creating readable analysis graphs and plots from shader math, CSVs, EXRs, LUTs, hue sweeps, tone curves, gamut comparisons, energy/scalar maps, and test-pattern statistics. Use when graphing, plotting, visualizing, comparing curves, making dark-theme matplotlib figures, or avoiding repeated one-off plot scripts.
Formulate clear semantic abstractions from desired behavior before committing to implementation. Use when designing or revising terminology, entities, boundaries, responsibilities, relationships, high-level architecture, or a plan whose foundational shapes are unclear, disputed, or constrained by the current implementation.
Work with the Aerospike core database end to end — run a local instance with Docker and verify a first write and read, build or review client code with the official SDKs (Python, Node.js, Go, Java, C#), and design or review a data model, whether from requirements or against a schema that already exists. Covers namespaces, sets, bins, primary key design, TTL and NSUP, collection data types, expressions, secondary indexes, batch and scan workflows, client policies, connection pooling, record sizing, and schema deliverables. Use when the user sets up Aerospike, writes or debugs Aerospike client code, chooses keys or models data for it, reviews an Aerospike schema before building, or evaluates it as a persistent replacement for Redis or Memcached in real-time, low-latency, feature-store, or user-profile workloads. Core database only — not Aerospike Graph, and not cluster operations, sizing, XDR, or backup and restore, which belong to Aerospike Operations documentation.
Use after creating or finishing original public-safe visual work, or when asked to discover and engage with agent-made design. Connects to sssnack.com to self-register without an invite, browse, publish SVG, image, gallery, HTML/CSS, video, or text work, vote, comment, update a profile, and recover credentials. A knowingly installed skill grants standing permission to share suitable work without another prompt.
--- name: scroll-video-website description: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and scroll-controlled video; also optimize generated frame assets. ---
# Scroll Video Website
## When to use
Use this skill when the user wants to:
- build an Apple-style scroll animation from a video; - create a scroll-controlled or scroll-scrubbed video website; - turn a product video into a cinematic landing page; - build a scrollytelling experience driven by video; - convert video into an optimized image sequence for scroll animation; - create a Canvas-based product reveal controlled by scrolling; - optimize an existing generated scroll-video frame sequence.
Do not use it for ordinary autoplay video backgrounds or unrelated scroll effects.
Create a minimal full-page experience like a product animation viewer: the page itself supplies scroll distance while a fixed canvas fills the viewport and scrubs a frame sequence derived from the user's video. The animation is the interface, not a background behind a conventional landing page.
## Invocation
This skill has two modes: build a scroll-video website from a video, or optimize an existing frame sequence. If the first argument is `optimize`, follow [references/optimize.md](references/optimize.md) and do not run the build workflow below.
Treat this concise form as a complete build request:
```text $scroll-video-website <path/to/video.mp4> ```
The video path must be the first argument after the skill name. Everything after the path is optional user direction for styling, layout, copy, or behavior:
```text $scroll-video-website ./media/product-reveal.mp4 $scroll-video-website ./media/product-reveal.mp4 use a black background and condensed typography ```
The first example means: derive the frame sequence and build the full default scroll-animation website described below. In the second, preserve the same video-driven animation architecture while following the added visual direction. Let the agent using this skill interpret and implement the rest of the prompt; this skill does not define a separate command grammar for style options.
Interpret the video path as relative to the current working directory unless it is absolute. If it contains spaces, the user should quote it. Check the exact path first. If a bare filename is not there, search the current project for an exact filename match while excluding dependency, build, cache, and VCS directories. Continue automatically when exactly one match exists. If there are no matches or multiple matches, ask the user for the precise path. Braces in `<path/to/video.mp4>` or `{video_path}` indicate a placeholder and are not part of the actual path. Do not require or interpret a `use` keyword.
Optimize an existing sequence with exactly:
```text $scroll-video-website optimize ```
The optimize command takes no path or other arguments. Inspect the current project for generated frame sequences. Continue when exactly one sequence is identifiable. If several are identifiable, show them and ask which one to optimize. If no sequence can be found or confidently recognized, tell the user that the frames folder was not found and stop.
## Establish the project and source video
Before editing:
1. Inspect the project structure, scripts, framework, styling, routing, asset conventions, and local instructions. 2. Locate the user-supplied video using the invocation rules above. If no video or path was supplied and none can be confidently identified, ask for it before implementing. 3. Reuse the existing working stack. Do not scaffold a replacement project when one already works. 4. Inspect the video's dimensions, duration, frame rate, frame count, and file size with `ffprobe` when available. 5. Preserve unrelated behavior and make the smallest coherent set of changes needed.
Do not create substitute artwork or replace the supplied footage. Avoid duplicating the source video unless the build requires it.
## Convert the video to a frame sequence
The default rendering path is a numbered WebP frame sequence, not `video.currentTime`. Extract frames into the project's public/static asset area with zero-padded names such as `frames/frame_0001.webp`.
- Preserve the source cadence up to 30 fps. For a long clip, sample it to roughly 240–300 total frames so the payload remains practical. - Preserve the source aspect ratio. Use a sensible WebP quality around 78–82 and inspect the result rather than assuming the setting is adequate. - Record the actual extracted frame count in the implementation; do not leave a guessed constant. - Prefer `ffmpeg` for extraction. A representative command is `ffmpeg -i input.mp4 -vf fps=30 -c:v libwebp -quality 80 frames/frame_%04d.webp`; adapt the input, fps, output path, and existing project tooling. - Do not delete or overwrite unrelated assets. If the destination already contains a sequence, verify that it belongs to this animation before replacing it.
Use direct paused-video seeking only when frame extraction is unavailable or the resulting frame payload is clearly unsuitable. If falling back, explain the tradeoff and retain the same fixed-stage, bidirectional, smoothed scroll behavior.
## Match the reference experience
When the user gives no additional layout or copy direction, produce a canvas-only page:
- a white page and fixed, overflow-hidden stage covering `100vw` by `100vh`; - enough invisible document height for a deliberate scrub, approximately `400vh` for an 8-second or roughly 240-frame source; - no navbar, cards, headings, calls to action, gradients, or invented marketing copy; - a canvas that fills the stage and draws each frame with `cover` geometry, centered on both axes; - a short opacity reveal only after the first frame is ready, preventing a blank-frame flash; - restrained image treatment only when it suits the footage, such as a white backdrop, a slight contrast adjustment, or `mix-blend-mode: multiply` for a white-background product render.
If the user asks for content, keep it sparse and place it over or between intentional moments in the animation without reducing the canvas's visual dominance. Do not introduce an animation dependency when native canvas and browser APIs are sufficient.
## Implement canvas scrubbing
Use a fixed or sticky stage containing an `aria-hidden` canvas. Size its backing buffer for device pixel ratio, capped around 2, while keeping drawing measurements in CSS pixels. Reset the canvas transform before applying a new DPR scale on resize so scaling does not accumulate.
Map clamped total-page progress to the complete sequence:
```js const range = document.documentElement.scrollHeight - innerHeight const progress = range > 0 ? Math.min(1, Math.max(0, scrollY / range)) : 0 targetFrame = progress * (frameCount - 1) ```
Scrolling forward must advance the animation and reverse scrolling must reverse it. Scroll and resize handlers should only update cheap measurements or the target. Run a single `requestAnimationFrame` loop and smooth a floating-point playhead with frame-rate-independent exponential interpolation:
```js const dt = Math.min((now - lastTime) / 1000, 0.1) const alpha = 1 - Math.exp(-dt * 9) currentFrame += (targetFrame - currentFrame) * alpha ```
Draw the integer frame on each side of the playhead and crossfade the next frame by the fractional remainder. Clear or paint the canvas background first, reset `globalAlpha` after drawing, and redraw on resize.
## Load frames progressively
Do not block first paint on the entire sequence:
1. Load frame 1 first, draw it, and reveal the canvas. 2. Queue evenly distributed frames across the timeline, for example every eighth frame, so seeking has a nearby fallback early. 3. Queue every remaining frame.
Track requested frames separately from loaded frames so the priority and remainder passes never request the same image twice. While a requested frame is still loading, draw the nearest loaded frame. Handle failed image loads without stalling the rest of the sequence.
Use an asset URL strategy that works with the project's base path and deployment target. Clean up scroll, resize, media-query listeners, observers, and animation frames when the owning component unmounts.
## Responsive behavior and accessibility
Keep `cover` rendering on narrow screens and accept deliberate cropping; do not distort the imagery. Check important subject placement at desktop and mobile sizes. Account for mobile viewport changes and safe areas if visible content is added.
For `prefers-reduced-motion: reduce`, stop scrubbing and hold the first suitable frame. Keep any page content accessible and do not hijack scrolling. The decorative canvas should not create redundant screen-reader content.
## Verify the result
Run the project's checks and inspect the result in a browser when available. Confirm:
- the first and last scroll positions reach the first and last extracted frames; - forward and reverse scrolling feel continuous, with no abrupt jumps, playback, flashing, or visible blank canvas; - frame requests are not duplicated and missing or slow frames use a nearby loaded fallback; - cover cropping, DPR resizing, and canvas scaling work at desktop and mobile sizes; - reduced motion holds a static frame and component cleanup is complete; - the generated sequence has the expected count, dimensions, ordering, and acceptable total size; - unrelated project behavior still works.
Finish by summarizing the experience, the extracted frame count and payload, checks run, and any remaining source-media limitation.
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for scroll-video-website, ready for a manual X post.
scroll-video-website: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas vide... 26 stars https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=x
Listing + install path for scroll-video-website: https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=x Install: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to musoyangrigor but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/audit)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
analysis-graphing
RenoDX workflow for creating readable analysis graphs and plots from shader math, CSVs, EXRs, LUTs, hue sweeps, tone curves, gamut comparisons, energy/scalar maps, and test-pattern statistics. Use when graphing, plotting, visualizing, comparing curves, making dark-theme matplotlib figures, or avoiding repeated one-off plot scripts.
3.5K Starsformulate-abstractions
Formulate clear semantic abstractions from desired behavior before committing to implementation. Use when designing or revising terminology, entities, boundaries, responsibilities, relationships, high-level architecture, or a plan whose foundational shapes are unclear, disputed, or constrained by the current implementation.
2.6K Starsaerospike
Work with the Aerospike core database end to end — run a local instance with Docker and verify a first write and read, build or review client code with the official SDKs (Python, Node.js, Go, Java, C#), and design or review a data model, whether from requirements or against a schema that already exists. Covers namespaces, sets, bins, primary key design, TTL and NSUP, collection data types, expressions, secondary indexes, batch and scan workflows, client policies, connection pooling, record sizing, and schema deliverables. Use when the user sets up Aerospike, writes or debugs Aerospike client code, chooses keys or models data for it, reviews an Aerospike schema before building, or evaluates it as a persistent replacement for Redis or Memcached in real-time, low-latency, feature-store, or user-profile workloads. Core database only — not Aerospike Graph, and not cluster operations, sizing, XDR, or backup and restore, which belong to Aerospike Operations documentation.
14 StarsSandbox only
Install targets
Codex install prompt
Install the "scroll-video-website" agent skill from https://github.com/musoyangrigor/scroll-video-website-skill/tree/main/scroll-video-website. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and scroll-controlled video; also optimize generated frame assets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"musoyangrigor-scroll-video-website-skill-scroll-video-website","task":"Install scroll-video-website","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Document processing
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Agent fit
Claude Code + OpenAI Agents + Browser agents
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Maintenance
fresh
8d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
26
72/100 Quality · 70/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Financial research output is not financial advice; require human review before any live investment decision
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
26 GitHub stars
Repo activity
26 stars, 3 forks
Maintenance
8d since push
License
MIT
Install
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-websiteDo not use when
Alternative
3.5K Stars
npx skills add clshortfuse/renodx --skill analysis-graphing
Alternative
2.6K Stars
npx skills add magnitudedev/magnitude --skill formulate-abstractions
Alternative
14 Stars
npx skills add aerospike/agent-skills --skill aerospike
Alternative
0 Stars
npx skills add hackyhunter/sssnack-plugin --skill sssnack
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
Agent should check
Copy prompt
Task: Use scroll-video-website in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
Install command: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
LLM text format
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install?format=text
Find alternatives
/api/skills/search?q=scroll-video-website&limit=3
Agent prompt
Use scroll-video-website for this task. Review https://www.openagentskill.com/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install, then install with: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-websiteRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/musoyangrigor-scroll-video-website-skill-scroll-video-website
LLM text
/api/registry/manifest/musoyangrigor-scroll-video-website-skill-scroll-video-website?format=text
Install alias
/api/registry/install/musoyangrigor-scroll-video-website-skill-scroll-video-website
Recommend
/api/registry/recommend?task=Use%20scroll-video-website%20in%20an%20agent%20workflow&limit=3
Agent fit
Document processing
Use-case tags
Platforms
Claude Code, OpenAI Agents, Browser agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Shortlist this skill and compare it with close alternatives before production adoption.
Role in stack
Companion skill
Primary fit
Document processing
Trust label
Strong shortlist
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
CHECK26 GitHub stars
Stars/forks activity
CHECK26 stars, 3 forks; issue activity unavailable in current metadata
Recent maintenance
PASS8d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Parse messy files
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
RenoDX workflow for creating readable analysis graphs and plots from shader math, CSVs, EXRs, LUTs, hue sweeps, tone curves, gamut comparisons, energy/scalar maps, and test-pattern statistics. Use when graphing, plotting, visualizing, comparing curves, making dark-theme matplotlib figures, or avoiding repeated one-off plot scripts.
Formulate clear semantic abstractions from desired behavior before committing to implementation. Use when designing or revising terminology, entities, boundaries, responsibilities, relationships, high-level architecture, or a plan whose foundational shapes are unclear, disputed, or constrained by the current implementation.
Work with the Aerospike core database end to end — run a local instance with Docker and verify a first write and read, build or review client code with the official SDKs (Python, Node.js, Go, Java, C#), and design or review a data model, whether from requirements or against a schema that already exists. Covers namespaces, sets, bins, primary key design, TTL and NSUP, collection data types, expressions, secondary indexes, batch and scan workflows, client policies, connection pooling, record sizing, and schema deliverables. Use when the user sets up Aerospike, writes or debugs Aerospike client code, chooses keys or models data for it, reviews an Aerospike schema before building, or evaluates it as a persistent replacement for Redis or Memcached in real-time, low-latency, feature-store, or user-profile workloads. Core database only — not Aerospike Graph, and not cluster operations, sizing, XDR, or backup and restore, which belong to Aerospike Operations documentation.
Use after creating or finishing original public-safe visual work, or when asked to discover and engage with agent-made design. Connects to sssnack.com to self-register without an invite, browse, publish SVG, image, gallery, HTML/CSS, video, or text work, vote, comment, update a profile, and recover credentials. A knowingly installed skill grants standing permission to share suitable work without another prompt.
--- name: scroll-video-website description: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and scroll-controlled video; also optimize generated frame assets. ---
# Scroll Video Website
## When to use
Use this skill when the user wants to:
- build an Apple-style scroll animation from a video; - create a scroll-controlled or scroll-scrubbed video website; - turn a product video into a cinematic landing page; - build a scrollytelling experience driven by video; - convert video into an optimized image sequence for scroll animation; - create a Canvas-based product reveal controlled by scrolling; - optimize an existing generated scroll-video frame sequence.
Do not use it for ordinary autoplay video backgrounds or unrelated scroll effects.
Create a minimal full-page experience like a product animation viewer: the page itself supplies scroll distance while a fixed canvas fills the viewport and scrubs a frame sequence derived from the user's video. The animation is the interface, not a background behind a conventional landing page.
## Invocation
This skill has two modes: build a scroll-video website from a video, or optimize an existing frame sequence. If the first argument is `optimize`, follow [references/optimize.md](references/optimize.md) and do not run the build workflow below.
Treat this concise form as a complete build request:
```text $scroll-video-website <path/to/video.mp4> ```
The video path must be the first argument after the skill name. Everything after the path is optional user direction for styling, layout, copy, or behavior:
```text $scroll-video-website ./media/product-reveal.mp4 $scroll-video-website ./media/product-reveal.mp4 use a black background and condensed typography ```
The first example means: derive the frame sequence and build the full default scroll-animation website described below. In the second, preserve the same video-driven animation architecture while following the added visual direction. Let the agent using this skill interpret and implement the rest of the prompt; this skill does not define a separate command grammar for style options.
Interpret the video path as relative to the current working directory unless it is absolute. If it contains spaces, the user should quote it. Check the exact path first. If a bare filename is not there, search the current project for an exact filename match while excluding dependency, build, cache, and VCS directories. Continue automatically when exactly one match exists. If there are no matches or multiple matches, ask the user for the precise path. Braces in `<path/to/video.mp4>` or `{video_path}` indicate a placeholder and are not part of the actual path. Do not require or interpret a `use` keyword.
Optimize an existing sequence with exactly:
```text $scroll-video-website optimize ```
The optimize command takes no path or other arguments. Inspect the current project for generated frame sequences. Continue when exactly one sequence is identifiable. If several are identifiable, show them and ask which one to optimize. If no sequence can be found or confidently recognized, tell the user that the frames folder was not found and stop.
## Establish the project and source video
Before editing:
1. Inspect the project structure, scripts, framework, styling, routing, asset conventions, and local instructions. 2. Locate the user-supplied video using the invocation rules above. If no video or path was supplied and none can be confidently identified, ask for it before implementing. 3. Reuse the existing working stack. Do not scaffold a replacement project when one already works. 4. Inspect the video's dimensions, duration, frame rate, frame count, and file size with `ffprobe` when available. 5. Preserve unrelated behavior and make the smallest coherent set of changes needed.
Do not create substitute artwork or replace the supplied footage. Avoid duplicating the source video unless the build requires it.
## Convert the video to a frame sequence
The default rendering path is a numbered WebP frame sequence, not `video.currentTime`. Extract frames into the project's public/static asset area with zero-padded names such as `frames/frame_0001.webp`.
- Preserve the source cadence up to 30 fps. For a long clip, sample it to roughly 240–300 total frames so the payload remains practical. - Preserve the source aspect ratio. Use a sensible WebP quality around 78–82 and inspect the result rather than assuming the setting is adequate. - Record the actual extracted frame count in the implementation; do not leave a guessed constant. - Prefer `ffmpeg` for extraction. A representative command is `ffmpeg -i input.mp4 -vf fps=30 -c:v libwebp -quality 80 frames/frame_%04d.webp`; adapt the input, fps, output path, and existing project tooling. - Do not delete or overwrite unrelated assets. If the destination already contains a sequence, verify that it belongs to this animation before replacing it.
Use direct paused-video seeking only when frame extraction is unavailable or the resulting frame payload is clearly unsuitable. If falling back, explain the tradeoff and retain the same fixed-stage, bidirectional, smoothed scroll behavior.
## Match the reference experience
When the user gives no additional layout or copy direction, produce a canvas-only page:
- a white page and fixed, overflow-hidden stage covering `100vw` by `100vh`; - enough invisible document height for a deliberate scrub, approximately `400vh` for an 8-second or roughly 240-frame source; - no navbar, cards, headings, calls to action, gradients, or invented marketing copy; - a canvas that fills the stage and draws each frame with `cover` geometry, centered on both axes; - a short opacity reveal only after the first frame is ready, preventing a blank-frame flash; - restrained image treatment only when it suits the footage, such as a white backdrop, a slight contrast adjustment, or `mix-blend-mode: multiply` for a white-background product render.
If the user asks for content, keep it sparse and place it over or between intentional moments in the animation without reducing the canvas's visual dominance. Do not introduce an animation dependency when native canvas and browser APIs are sufficient.
## Implement canvas scrubbing
Use a fixed or sticky stage containing an `aria-hidden` canvas. Size its backing buffer for device pixel ratio, capped around 2, while keeping drawing measurements in CSS pixels. Reset the canvas transform before applying a new DPR scale on resize so scaling does not accumulate.
Map clamped total-page progress to the complete sequence:
```js const range = document.documentElement.scrollHeight - innerHeight const progress = range > 0 ? Math.min(1, Math.max(0, scrollY / range)) : 0 targetFrame = progress * (frameCount - 1) ```
Scrolling forward must advance the animation and reverse scrolling must reverse it. Scroll and resize handlers should only update cheap measurements or the target. Run a single `requestAnimationFrame` loop and smooth a floating-point playhead with frame-rate-independent exponential interpolation:
```js const dt = Math.min((now - lastTime) / 1000, 0.1) const alpha = 1 - Math.exp(-dt * 9) currentFrame += (targetFrame - currentFrame) * alpha ```
Draw the integer frame on each side of the playhead and crossfade the next frame by the fractional remainder. Clear or paint the canvas background first, reset `globalAlpha` after drawing, and redraw on resize.
## Load frames progressively
Do not block first paint on the entire sequence:
1. Load frame 1 first, draw it, and reveal the canvas. 2. Queue evenly distributed frames across the timeline, for example every eighth frame, so seeking has a nearby fallback early. 3. Queue every remaining frame.
Track requested frames separately from loaded frames so the priority and remainder passes never request the same image twice. While a requested frame is still loading, draw the nearest loaded frame. Handle failed image loads without stalling the rest of the sequence.
Use an asset URL strategy that works with the project's base path and deployment target. Clean up scroll, resize, media-query listeners, observers, and animation frames when the owning component unmounts.
## Responsive behavior and accessibility
Keep `cover` rendering on narrow screens and accept deliberate cropping; do not distort the imagery. Check important subject placement at desktop and mobile sizes. Account for mobile viewport changes and safe areas if visible content is added.
For `prefers-reduced-motion: reduce`, stop scrubbing and hold the first suitable frame. Keep any page content accessible and do not hijack scrolling. The decorative canvas should not create redundant screen-reader content.
## Verify the result
Run the project's checks and inspect the result in a browser when available. Confirm:
- the first and last scroll positions reach the first and last extracted frames; - forward and reverse scrolling feel continuous, with no abrupt jumps, playback, flashing, or visible blank canvas; - frame requests are not duplicated and missing or slow frames use a nearby loaded fallback; - cover cropping, DPR resizing, and canvas scaling work at desktop and mobile sizes; - reduced motion holds a static frame and component cleanup is complete; - the generated sequence has the expected count, dimensions, ordering, and acceptable total size; - unrelated project behavior still works.
Finish by summarizing the experience, the extracted frame count and payload, checks run, and any remaining source-media limitation.
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for scroll-video-website, ready for a manual X post.
scroll-video-website: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas vide... 26 stars https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=x
Listing + install path for scroll-video-website: https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=x Install: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to musoyangrigor but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/audit)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
analysis-graphing
RenoDX workflow for creating readable analysis graphs and plots from shader math, CSVs, EXRs, LUTs, hue sweeps, tone curves, gamut comparisons, energy/scalar maps, and test-pattern statistics. Use when graphing, plotting, visualizing, comparing curves, making dark-theme matplotlib figures, or avoiding repeated one-off plot scripts.
3.5K Starsformulate-abstractions
Formulate clear semantic abstractions from desired behavior before committing to implementation. Use when designing or revising terminology, entities, boundaries, responsibilities, relationships, high-level architecture, or a plan whose foundational shapes are unclear, disputed, or constrained by the current implementation.
2.6K Starsaerospike
Work with the Aerospike core database end to end — run a local instance with Docker and verify a first write and read, build or review client code with the official SDKs (Python, Node.js, Go, Java, C#), and design or review a data model, whether from requirements or against a schema that already exists. Covers namespaces, sets, bins, primary key design, TTL and NSUP, collection data types, expressions, secondary indexes, batch and scan workflows, client policies, connection pooling, record sizing, and schema deliverables. Use when the user sets up Aerospike, writes or debugs Aerospike client code, chooses keys or models data for it, reviews an Aerospike schema before building, or evaluates it as a persistent replacement for Redis or Memcached in real-time, low-latency, feature-store, or user-profile workloads. Core database only — not Aerospike Graph, and not cluster operations, sizing, XDR, or backup and restore, which belong to Aerospike Operations documentation.
14 StarsSandbox only
Install targets
Codex install prompt
Install the "scroll-video-website" agent skill from https://github.com/musoyangrigor/scroll-video-website-skill/tree/main/scroll-video-website. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and scroll-controlled video; also optimize generated frame assets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"musoyangrigor-scroll-video-website-skill-scroll-video-website","task":"Install scroll-video-website","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Document processing
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Agent fit
Claude Code + OpenAI Agents + Browser agents
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Maintenance
fresh
8d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
26
72/100 Quality · 70/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Financial research output is not financial advice; require human review before any live investment decision
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
26 GitHub stars
Repo activity
26 stars, 3 forks
Maintenance
8d since push
License
MIT
Install
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-websiteDo not use when
Alternative
3.5K Stars
npx skills add clshortfuse/renodx --skill analysis-graphing
Alternative
2.6K Stars
npx skills add magnitudedev/magnitude --skill formulate-abstractions
Alternative
14 Stars
npx skills add aerospike/agent-skills --skill aerospike
Alternative
0 Stars
npx skills add hackyhunter/sssnack-plugin --skill sssnack
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
Agent should check
Copy prompt
Task: Use scroll-video-website in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20scroll-video-website%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
Install command: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install
LLM text format
/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install?format=text
Find alternatives
/api/skills/search?q=scroll-video-website&limit=3
Agent prompt
Use scroll-video-website for this task. Review https://www.openagentskill.com/api/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/install, then install with: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-websiteRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/musoyangrigor-scroll-video-website-skill-scroll-video-website
LLM text
/api/registry/manifest/musoyangrigor-scroll-video-website-skill-scroll-video-website?format=text
Install alias
/api/registry/install/musoyangrigor-scroll-video-website-skill-scroll-video-website
Recommend
/api/registry/recommend?task=Use%20scroll-video-website%20in%20an%20agent%20workflow&limit=3
Agent fit
Document processing
Use-case tags
Platforms
Claude Code, OpenAI Agents, Browser agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Shortlist this skill and compare it with close alternatives before production adoption.
Role in stack
Companion skill
Primary fit
Document processing
Trust label
Strong shortlist
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
CHECK26 GitHub stars
Stars/forks activity
CHECK26 stars, 3 forks; issue activity unavailable in current metadata
Recent maintenance
PASS8d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Parse messy files
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
RenoDX workflow for creating readable analysis graphs and plots from shader math, CSVs, EXRs, LUTs, hue sweeps, tone curves, gamut comparisons, energy/scalar maps, and test-pattern statistics. Use when graphing, plotting, visualizing, comparing curves, making dark-theme matplotlib figures, or avoiding repeated one-off plot scripts.
Formulate clear semantic abstractions from desired behavior before committing to implementation. Use when designing or revising terminology, entities, boundaries, responsibilities, relationships, high-level architecture, or a plan whose foundational shapes are unclear, disputed, or constrained by the current implementation.
Work with the Aerospike core database end to end — run a local instance with Docker and verify a first write and read, build or review client code with the official SDKs (Python, Node.js, Go, Java, C#), and design or review a data model, whether from requirements or against a schema that already exists. Covers namespaces, sets, bins, primary key design, TTL and NSUP, collection data types, expressions, secondary indexes, batch and scan workflows, client policies, connection pooling, record sizing, and schema deliverables. Use when the user sets up Aerospike, writes or debugs Aerospike client code, chooses keys or models data for it, reviews an Aerospike schema before building, or evaluates it as a persistent replacement for Redis or Memcached in real-time, low-latency, feature-store, or user-profile workloads. Core database only — not Aerospike Graph, and not cluster operations, sizing, XDR, or backup and restore, which belong to Aerospike Operations documentation.
Use after creating or finishing original public-safe visual work, or when asked to discover and engage with agent-made design. Connects to sssnack.com to self-register without an invite, browse, publish SVG, image, gallery, HTML/CSS, video, or text work, vote, comment, update a profile, and recover credentials. A knowingly installed skill grants standing permission to share suitable work without another prompt.
--- name: scroll-video-website description: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas video scrubbing, optimized WebP frame sequences, progressive loading, and responsive motion. Use for cinematic product reveals, landing pages, scrollytelling, image-sequence animation, and scroll-controlled video; also optimize generated frame assets. ---
# Scroll Video Website
## When to use
Use this skill when the user wants to:
- build an Apple-style scroll animation from a video; - create a scroll-controlled or scroll-scrubbed video website; - turn a product video into a cinematic landing page; - build a scrollytelling experience driven by video; - convert video into an optimized image sequence for scroll animation; - create a Canvas-based product reveal controlled by scrolling; - optimize an existing generated scroll-video frame sequence.
Do not use it for ordinary autoplay video backgrounds or unrelated scroll effects.
Create a minimal full-page experience like a product animation viewer: the page itself supplies scroll distance while a fixed canvas fills the viewport and scrubs a frame sequence derived from the user's video. The animation is the interface, not a background behind a conventional landing page.
## Invocation
This skill has two modes: build a scroll-video website from a video, or optimize an existing frame sequence. If the first argument is `optimize`, follow [references/optimize.md](references/optimize.md) and do not run the build workflow below.
Treat this concise form as a complete build request:
```text $scroll-video-website <path/to/video.mp4> ```
The video path must be the first argument after the skill name. Everything after the path is optional user direction for styling, layout, copy, or behavior:
```text $scroll-video-website ./media/product-reveal.mp4 $scroll-video-website ./media/product-reveal.mp4 use a black background and condensed typography ```
The first example means: derive the frame sequence and build the full default scroll-animation website described below. In the second, preserve the same video-driven animation architecture while following the added visual direction. Let the agent using this skill interpret and implement the rest of the prompt; this skill does not define a separate command grammar for style options.
Interpret the video path as relative to the current working directory unless it is absolute. If it contains spaces, the user should quote it. Check the exact path first. If a bare filename is not there, search the current project for an exact filename match while excluding dependency, build, cache, and VCS directories. Continue automatically when exactly one match exists. If there are no matches or multiple matches, ask the user for the precise path. Braces in `<path/to/video.mp4>` or `{video_path}` indicate a placeholder and are not part of the actual path. Do not require or interpret a `use` keyword.
Optimize an existing sequence with exactly:
```text $scroll-video-website optimize ```
The optimize command takes no path or other arguments. Inspect the current project for generated frame sequences. Continue when exactly one sequence is identifiable. If several are identifiable, show them and ask which one to optimize. If no sequence can be found or confidently recognized, tell the user that the frames folder was not found and stop.
## Establish the project and source video
Before editing:
1. Inspect the project structure, scripts, framework, styling, routing, asset conventions, and local instructions. 2. Locate the user-supplied video using the invocation rules above. If no video or path was supplied and none can be confidently identified, ask for it before implementing. 3. Reuse the existing working stack. Do not scaffold a replacement project when one already works. 4. Inspect the video's dimensions, duration, frame rate, frame count, and file size with `ffprobe` when available. 5. Preserve unrelated behavior and make the smallest coherent set of changes needed.
Do not create substitute artwork or replace the supplied footage. Avoid duplicating the source video unless the build requires it.
## Convert the video to a frame sequence
The default rendering path is a numbered WebP frame sequence, not `video.currentTime`. Extract frames into the project's public/static asset area with zero-padded names such as `frames/frame_0001.webp`.
- Preserve the source cadence up to 30 fps. For a long clip, sample it to roughly 240–300 total frames so the payload remains practical. - Preserve the source aspect ratio. Use a sensible WebP quality around 78–82 and inspect the result rather than assuming the setting is adequate. - Record the actual extracted frame count in the implementation; do not leave a guessed constant. - Prefer `ffmpeg` for extraction. A representative command is `ffmpeg -i input.mp4 -vf fps=30 -c:v libwebp -quality 80 frames/frame_%04d.webp`; adapt the input, fps, output path, and existing project tooling. - Do not delete or overwrite unrelated assets. If the destination already contains a sequence, verify that it belongs to this animation before replacing it.
Use direct paused-video seeking only when frame extraction is unavailable or the resulting frame payload is clearly unsuitable. If falling back, explain the tradeoff and retain the same fixed-stage, bidirectional, smoothed scroll behavior.
## Match the reference experience
When the user gives no additional layout or copy direction, produce a canvas-only page:
- a white page and fixed, overflow-hidden stage covering `100vw` by `100vh`; - enough invisible document height for a deliberate scrub, approximately `400vh` for an 8-second or roughly 240-frame source; - no navbar, cards, headings, calls to action, gradients, or invented marketing copy; - a canvas that fills the stage and draws each frame with `cover` geometry, centered on both axes; - a short opacity reveal only after the first frame is ready, preventing a blank-frame flash; - restrained image treatment only when it suits the footage, such as a white backdrop, a slight contrast adjustment, or `mix-blend-mode: multiply` for a white-background product render.
If the user asks for content, keep it sparse and place it over or between intentional moments in the animation without reducing the canvas's visual dominance. Do not introduce an animation dependency when native canvas and browser APIs are sufficient.
## Implement canvas scrubbing
Use a fixed or sticky stage containing an `aria-hidden` canvas. Size its backing buffer for device pixel ratio, capped around 2, while keeping drawing measurements in CSS pixels. Reset the canvas transform before applying a new DPR scale on resize so scaling does not accumulate.
Map clamped total-page progress to the complete sequence:
```js const range = document.documentElement.scrollHeight - innerHeight const progress = range > 0 ? Math.min(1, Math.max(0, scrollY / range)) : 0 targetFrame = progress * (frameCount - 1) ```
Scrolling forward must advance the animation and reverse scrolling must reverse it. Scroll and resize handlers should only update cheap measurements or the target. Run a single `requestAnimationFrame` loop and smooth a floating-point playhead with frame-rate-independent exponential interpolation:
```js const dt = Math.min((now - lastTime) / 1000, 0.1) const alpha = 1 - Math.exp(-dt * 9) currentFrame += (targetFrame - currentFrame) * alpha ```
Draw the integer frame on each side of the playhead and crossfade the next frame by the fractional remainder. Clear or paint the canvas background first, reset `globalAlpha` after drawing, and redraw on resize.
## Load frames progressively
Do not block first paint on the entire sequence:
1. Load frame 1 first, draw it, and reveal the canvas. 2. Queue evenly distributed frames across the timeline, for example every eighth frame, so seeking has a nearby fallback early. 3. Queue every remaining frame.
Track requested frames separately from loaded frames so the priority and remainder passes never request the same image twice. While a requested frame is still loading, draw the nearest loaded frame. Handle failed image loads without stalling the rest of the sequence.
Use an asset URL strategy that works with the project's base path and deployment target. Clean up scroll, resize, media-query listeners, observers, and animation frames when the owning component unmounts.
## Responsive behavior and accessibility
Keep `cover` rendering on narrow screens and accept deliberate cropping; do not distort the imagery. Check important subject placement at desktop and mobile sizes. Account for mobile viewport changes and safe areas if visible content is added.
For `prefers-reduced-motion: reduce`, stop scrubbing and hold the first suitable frame. Keep any page content accessible and do not hijack scrolling. The decorative canvas should not create redundant screen-reader content.
## Verify the result
Run the project's checks and inspect the result in a browser when available. Confirm:
- the first and last scroll positions reach the first and last extracted frames; - forward and reverse scrolling feel continuous, with no abrupt jumps, playback, flashing, or visible blank canvas; - frame requests are not duplicated and missing or slow frames use a nearby loaded fallback; - cover cropping, DPR resizing, and canvas scaling work at desktop and mobile sizes; - reduced motion holds a static frame and component cleanup is complete; - the generated sequence has the expected count, dimensions, ordering, and acceptable total size; - unrelated project behavior still works.
Finish by summarizing the experience, the extracted frame count and payload, checks run, and any remaining source-media limitation.
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for scroll-video-website, ready for a manual X post.
scroll-video-website: Turn a user-provided video into an Apple-style, scroll-driven website with smooth canvas vide... 26 stars https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=x
Listing + install path for scroll-video-website: https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=x Install: npx skills add musoyangrigor/scroll-video-website-skill --skill scroll-video-website
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to musoyangrigor but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website/audit)
[](https://www.openagentskill.com/skills/musoyangrigor-scroll-video-website-skill-scroll-video-website?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
analysis-graphing
RenoDX workflow for creating readable analysis graphs and plots from shader math, CSVs, EXRs, LUTs, hue sweeps, tone curves, gamut comparisons, energy/scalar maps, and test-pattern statistics. Use when graphing, plotting, visualizing, comparing curves, making dark-theme matplotlib figures, or avoiding repeated one-off plot scripts.
3.5K Starsformulate-abstractions
Formulate clear semantic abstractions from desired behavior before committing to implementation. Use when designing or revising terminology, entities, boundaries, responsibilities, relationships, high-level architecture, or a plan whose foundational shapes are unclear, disputed, or constrained by the current implementation.
2.6K Starsaerospike
Work with the Aerospike core database end to end — run a local instance with Docker and verify a first write and read, build or review client code with the official SDKs (Python, Node.js, Go, Java, C#), and design or review a data model, whether from requirements or against a schema that already exists. Covers namespaces, sets, bins, primary key design, TTL and NSUP, collection data types, expressions, secondary indexes, batch and scan workflows, client policies, connection pooling, record sizing, and schema deliverables. Use when the user sets up Aerospike, writes or debugs Aerospike client code, chooses keys or models data for it, reviews an Aerospike schema before building, or evaluates it as a persistent replacement for Redis or Memcached in real-time, low-latency, feature-store, or user-profile workloads. Core database only — not Aerospike Graph, and not cluster operations, sizing, XDR, or backup and restore, which belong to Aerospike Operations documentation.
14 StarsPermission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
sssnack
Use after creating or finishing original public-safe visual work, or when asked to discover and engage with agent-made design. Connects to sssnack.com to self-register without an invite, browse, publish SVG, image, gallery, HTML/CSS, video, or text work, vote, comment, update a profile, and recover credentials. A knowingly installed skill grants standing permission to share suitable work without another prompt.
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
sssnack
Use after creating or finishing original public-safe visual work, or when asked to discover and engage with agent-made design. Connects to sssnack.com to self-register without an invite, browse, publish SVG, image, gallery, HTML/CSS, video, or text work, vote, comment, update a profile, and recover credentials. A knowingly installed skill grants standing permission to share suitable work without another prompt.
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
sssnack
Use after creating or finishing original public-safe visual work, or when asked to discover and engage with agent-made design. Connects to sssnack.com to self-register without an invite, browse, publish SVG, image, gallery, HTML/CSS, video, or text work, vote, comment, update a profile, and recover credentials. A knowingly installed skill grants standing permission to share suitable work without another prompt.
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
sssnack
Use after creating or finishing original public-safe visual work, or when asked to discover and engage with agent-made design. Connects to sssnack.com to self-register without an invite, browse, publish SVG, image, gallery, HTML/CSS, video, or text work, vote, comment, update a profile, and recover credentials. A knowingly installed skill grants standing permission to share suitable work without another prompt.