Skip to content
cccskills
FreePublished on GitHub

sn-motion-html

Create HTML stories where page progress controls a continuous camera journey. The workflow covers research, chapter planning, consistent AI images, Seedance scene and transition clips, interface design, media preparation, and browser checks.

OriginalShow the original description

Build continuous-shot motion-driven HTML stories from a subject or narrative, including research, story structure, consistent AI stills, Seedance scene and connector clips, interface styling, media normalization, and browser QA. Use for immersive journeys, timelines, product stories, fictional worlds, or other scene-based visual narratives whose camera should flow from beginning to end; not for ordinary autoplay video pages or general web apps.

See how to install

Good for

  • Create an immersive journey through connected scenes
  • Present a timeline as a continuous camera journey
  • Build a visual product story
  • Introduce a fictional world through moving scenes

Files included (30)

  • SKILL.md8.5 KB
  • agents/openai.yaml269 B
  • assets/style-presets/anime.json1.0 KB
  • assets/style-presets/cgi.json967 B
  • assets/style-presets/cinematic.json1.0 KB
  • assets/template/.env.example179 B
  • assets/template/.gitignore102 B
  • assets/template/content/story.json1.7 KB
  • assets/template/index.html832 B
  • assets/template/prompts/style-motion.txt141 B
  • assets/template/prompts/style-preamble.txt182 B
  • assets/template/prompts/video-manifest.json993 B
  • assets/template/prompts/video/connectors/01-opening-to-destination.txt341 B
  • assets/template/prompts/video/dives/01-opening.txt337 B
  • assets/template/prompts/video/dives/02-destination.txt337 B
  • assets/template/src/app.js2.3 KB
  • assets/template/src/motion-runtime.js11.4 KB
  • assets/template/styles.css12.4 KB
  • references/frontend.md3.7 KB
  • references/prompting.md3.1 KB
  • references/schemas.md2.7 KB
  • references/seedance.md2.3 KB
  • references/style-presets.md3.1 KB
  • references/workflow.md5.9 KB
  • scripts/contact_sheet.py2.7 KB
  • scripts/init_project.py3.2 KB
  • scripts/make_posters.py1.2 KB
  • scripts/seedance_pipeline.py12.3 KB
  • scripts/serve_project.py1.5 KB
  • scripts/verify_media.py2.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

SN Motion HTML

Create a reusable project, not a one-off HTML file. Keep subject matter, chapter count, visual style, interface treatment, copy placement, language, image model, video model, clip duration, and hosting path configurable.

The defining experience is one continuous camera journey controlled by page progress. Preserve a single fixed media stage and one ordered timeline from the first scene through every connector to the final scene. Differentiate projects through transparent copy composition, header treatment, type, navigation, and scene-specific copy placement—not by replacing the continuous stage with separate article media blocks.

Route the work

  1. Resolve the story goal, audience, factual fidelity, chapter scale, visual language, copy language, target devices, sound policy, and available API credentials. Make reasonable defaults only for low-risk implementation details.
  2. For factual or source-based stories, research before outlining and record sources separately from display copy.
  3. Produce a chapter blueprint, shot/connector plan, and character/object bible before generating the full media set.
  4. Detect the image-generation capability available in the current environment before generating any stills. The capability may be a callable image tool, a skill that exposes or instructs an image workflow, or both. Use the available capability when present; if no suitable capability is available, report that blocker to the user before continuing past the still-generation stage.
  5. Prepare a review package containing the proposed visual style and the content/shot arrangement. When an image capability is available, generate only the small reference/gate set needed for review.
  6. Obtain the user's explicit approval at both approval gates below. After approval, generate the complete still set and inspect it before any paid video batch.
  7. Dry-run the video manifest and representative clip. Obtain explicit authorization immediately before the first paid video API request, then generate scene clips and connector clips in dependency-aware parallel phases.
  8. Choose or design an interface treatment around the continuous stage, assemble from structured content, then verify media and browser behavior.

Required user approval gates

Do not silently infer approval from an unanswered message or from a prior general instruction. If the user requests changes, revise the package and present the affected gate again.

  1. Visual style approval: present the style preamble and identity blocks, including medium, palette, materials, lighting, camera grammar, composition, negative constraints, and recurring character/product treatment. When image generation is available, include a small reference/gate set (normally opening, middle, and ending stills). Do not generate the complete still set until the user explicitly approves the visual direction.
  2. Content and shot-plan approval: present the chapter order, each chapter's dominant visual event and display copy, scene framing/camera intent, connector start and destination, and per-scene copy position. Do not generate the complete still set or write the final video manifest until the user explicitly approves this arrangement.

These are separate decisions: style approval determines how the world looks; content and shot-plan approval determines what is shown and how the camera moves through it. The later paid-video approval is an authorization gate, not a substitute for either creative approval.

Read references/workflow.md for the full production sequence. Read only the additional references needed for the current stage:

Start from the template

Run:

python scripts/init_project.py /absolute/output/path --title "Story title" --style cinematic --ui folio

The initializer copies assets/template/ and creates the media directories. Replace the example story and manifests; do not leave placeholder subject matter in the final project.

Choose --style anime, --style cinematic, or --style cgi. Separately choose --ui folio, --ui caption, or --ui graphic. Style controls the generated world; UI controls header, transparent copy treatment, navigation, and type composition. Per-chapter copyPosition may be left, right, bottom, or center when the focal subject requires it.

All UI presets use the same continuous-shot runtime. Adapt the visual chrome materially for the subject, but do not interrupt the camera chain or turn chapters into separate media cards.

It also copies the reusable scripts into the new project. From the project root, the common commands are:

python scripts/seedance_pipeline.py . plan
python scripts/seedance_pipeline.py . all --workers 4
python scripts/verify_media.py .
python scripts/contact_sheet.py .
python scripts/serve_project.py . --port 8080

Production invariants

  • Keep narrative data in content/story.json; do not hardcode chapter copy into the runtime.
  • Keep each chapter's complete, concise copy visible together. Do not rotate paragraphs within one clip unless explicitly requested.
  • Maintain a single style preamble and immutable identity blocks for recurring characters or products.
  • Require explicit user approval of the visual style and the content/shot plan before generating the complete still set or final video manifest. Run a small still-image consistency gate before generating the full set. The gate requires an available image-generation capability (callable tool, applicable skill workflow, or both); do not silently substitute placeholder stills when that capability is absent.
  • Use one fixed full-viewport media stage. Ordered scene and connector clips together form one virtual continuous take.
  • Scene clips and every adjacent connector are required unless the user explicitly accepts a visible cut.
  • Keep one complete, static, transparent copy block per scene clip. Connector clips carry no changing paragraph sequence.
  • Copy articles have no solid card fill by default. Use localized edge-free gradients, text shadow, or fine rules for contrast so the words remain visually integrated with the scene.
  • Dives may run in parallel. Connectors must wait until all adjacent dive boundary frames exist, then may run in parallel.
  • Immediately download provider results. Normalize all final clips to identical codec, dimensions, frame rate, exact duration, no audio unless requested, short GOP, and faststart.
  • Use project-local .env, exclude it from version control, and ensure a static server cannot expose it.
  • Never print secrets or embed them in frontend files. Do not infer authorization for paid generation; if it is not explicit, stop after the dry run. Creative approval does not imply paid-generation authorization.
  • Bound automated retries. Treat authentication, permission, billing, and model-activation errors as non-retryable.
  • Preserve still posters and a reduced-motion path so the story remains usable when video loading or motion is unavailable.

Validation

Before delivery:

  1. Validate JSON, JavaScript, shell, and Python syntax.
  2. Run scripts/verify_media.py PROJECT_ROOT; require the declared count, dimensions, frame rate, codec, and exact duration.
  3. Test a fresh browser session, reverse and forward progress, chapter navigation, transition boundaries, missing-video fallback, and reduced motion.
  4. Inspect a midpoint contact sheet. Prioritize correct identities, key objects, and scene meaning over incidental generative details unless the user asks for stricter fidelity.
  5. Report the preview URL, project path, media directories, model configuration, QA result, and any remaining external blocker.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Compare counts and shares for two categories in Excel data. The skill cleans the selected columns, calculates differences and percentages, and produces a summary spreadsheet plus bar and pie charts.

  • Comparing counts for two categories
  • Visualizing category shares
  • Cleaning merged-cell data before counting
OpenSenseNova/SenseNova-Skills5.8KUpdated Oct 9, 2026

Analyze Excel data using custom categories, count distributions, and compare groups with charts. Score text using its length, technical terms, numbers, and selected complex concepts, then visualize difficulty levels and the relationship between text length and scores.

  • Summarize Excel records using custom categories
  • Compare category distributions across groups
  • Score and grade text using adjustable rules
OpenSenseNova/SenseNova-Skills5.8KUpdated Oct 9, 2026

Count categories in a chosen data column after removing missing values and placeholder labels. Calculate each category’s share and create high-resolution charts combining counts, percentages, pie charts, and horizontal bars for distribution reports.

  • Compare record counts across categories
  • Show category shares with pie and bar charts
  • Exclude placeholder labels before counting
OpenSenseNova/SenseNova-Skills5.8KUpdated Oct 9, 2026

Clean category and numeric fields in structured data, compare groups with counts and cross-tabulations, and produce charts, Excel results, and a Markdown report. Export visuals as high-resolution PNG and SVG files for use in reports.

  • Compare category distributions across groups
  • Clean category labels and fill merged-cell gaps
  • Export analysis results to Excel
OpenSenseNova/SenseNova-Skills5.8KUpdated Oct 9, 2026

Filter Excel data using candidate column names, RGB color values, text prefixes, and regular expressions, which match text patterns. Calculate totals and averages, then export results to Excel with highlighted rows and a download link.

  • Filtering rows by RGB values or identifier prefixes
  • Converting text to numbers and calculating totals or averages
  • Extracting matching commands with their identifiers and descriptions
OpenSenseNova/SenseNova-Skills5.8KUpdated Oct 9, 2026

Filter rows from Excel or previously converted Parquet files, a format designed for efficient data storage. Summarize matching records by group with counts, percentages, and totals, then export the summary to Excel.

  • Count records containing a specified risk level by work category
  • Calculate group shares among matching records
  • Summarize large datasets already converted to Parquet
OpenSenseNova/SenseNova-Skills5.8KUpdated Oct 9, 2026

See all skills by OpenSenseNova

Report a problem with this skill