本文へ移動
cccskills
無料GitHub で公開日本語紹介

scrollcraft

スクロールに合わせて映像や演出が進むランディングページを制作します。見せる順序や感情の変化を設計し、HTML実装から各位置の画面検証まで進めるスキルです。

原文原文の説明を見る

Premium scroll-driven landing pages; scroll = timeline.

インストール方法を見る

こんなときに便利

  • スクロールで動画が進むLPを作りたいとき
  • 場面の変化でブランドを紹介したいとき
  • 手持ちの写真や映像でページを作りたいとき
  • スマホ表示やスクロール途中を検証したいとき

日本語での紹介

できること

スクロール量に合わせて映像や演出が進むランディングページを、企画からHTML実装、画面検証まで制作します。訪問者が何を知り、どう感じるかを順番に整理し、印象に残る一場面と独自の操作演出を設計します。写真や動画の準備、色や書体の設定も扱い、複数の演出を組み合わせたページに仕上げます。制作方針をまとめたBRIEF.mdと、スクロール位置ごとのスクリーンショットも成果物に含まれます。

こんなときに便利

ブランドや商品の魅力を、場面の変化で伝えたいときに向いています。手持ちの写真や動画を使う制作や、ページ間で構成や演出の重複を避けたい場面にも役立ちます。

使い方の例

  • 「スクロールで動画が進む商品紹介ページを作って」
  • 「この写真と映像を使い、静かな導入から印象的な場面へ進むページにして」

注意点

制作前のヒアリングと、素材生成前の構成確認を含む手順です。スクリプトにはNode.jsや必要なフィルターを備えたffmpegを使います。画面検証にはPlaywrightなどのブラウザー環境が必要です。任意のkie.ai利用にはKIE_AI_API_KEYと有料クレジットが必要です。自動検証だけでは実機スマートフォンの動画動作まで確認できません。

この紹介文は、公開されている SKILL.md をもとに AI(Claude Haiku)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(22)

  • SKILL.md11.7 KB
  • engine/scrollcraft.css19.3 KB
  • engine/scrollcraft.js55.0 KB
  • LICENSE.txt1.0 KB
  • references/assets.md12.9 KB
  • references/device-diag.html8.9 KB
  • references/devices.md21.3 KB
  • references/feel.md12.9 KB
  • references/taste.md14.5 KB
  • references/template.html6.3 KB
  • references/uniqueness.md23.0 KB
  • references/verify.md23.3 KB
  • references/worldflight.md15.8 KB
  • references/worlds.md7.9 KB
  • scripts/doctor.mjs7.0 KB
  • scripts/encode.sh3.1 KB
  • scripts/kie.mjs7.6 KB
  • scripts/serve.mjs2.0 KB
  • scripts/shoot.mjs32.0 KB
  • scripts/workspace.mjs3.6 KB
  • scripts/worldflight-assert.mjs12.6 KB
  • templates/FINGERPRINTS.md2.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

scrollcraft

Scroll is the only input every visitor already knows. This skill treats it as a timeline: the wheel is a scrubber, the page is a film with real text on top, and each section behaves differently enough that the visitor keeps going.

What you produce: an interview brief, a page grammar, a customer-journey map, a feeling curve with one engineered peak, a scroll score, one signature move, assets, one real HTML page on a token-driven design floor, and a strip of screenshots proving it holds up at every scroll position.

Use for: "scrollytelling", "scroll animation site", "a site where scrolling plays a video", "Apple-style landing page", "3D scroll world", "make my brand a scroll experience", "this looks like a template", or any request for a site that should feel like an experience rather than a document.

What this is not

It is not "generate a flythrough and drop text on it." That produces one device applied to a whole page, recognisable at a glance. Four spine rules:

  1. Variety is the product. At least four device families, never the same device twice in a row. Read references/devices.md.
  2. The world is photographic unless the brand is genuinely illustrated. Clay/low-poly diorama is banned as a default. Read references/worlds.md.
  3. No continuous chain unless the brief is literally "one continuous journey" (then see references/worldflight.md).
  4. A different world is not a different page. Structure is a separate axis; decide it deliberately. Read references/uniqueness.md.

Step 0: The interview

Always ask the user in chat before building anything. Real questions, asked and answered in the conversation, written down — not a brief inferred from the brand name. Eight questions in one pass:

  1. Vibe in three to five words, plus up to three references from any medium (film, album cover, shop, magazine, game — not "sites you like").
  2. The scroll journey, section by section, in their words.
  3. The energy curve — where calm, where intense.
  4. How should someone feel while scrolling, stage by stage, and what is the ONE moment they should remember? Becomes the feeling curve and the peak. See references/feel.md.
  5. One thing this site should do that no site they have seen does — the seed of the signature move.
  6. How far from premium-minimal? Offer the range in references/uniqueness.md §5: brutalist, maximalist, playful, retro, dense, editorial, premium-minimal.
  7. One unbroken world, or distinct scenes? The biggest structural fork, and it is their call.
  8. What assets do they already have? Footage, photos, product shots, brand kit. "Nothing" is fine and means a fully generated world.

Write the answers verbatim into <workspace>/builds/<name>/BRIEF.md (use write_file) before any act planning. BRIEF.md must contain the eight answers, the feeling curve (one line per act: emotion, then cause), the peak (as the sentence a visitor would say to a friend), the completed "It's the site where ___" sentence, and any authored silence. If the user is genuinely unreachable in a fully autonomous run, self-author BRIEF.md, mark it Self-authored, not interviewed, and say so in the report.

Bootstrap

Run the preflight rather than checking by hand (it catches a stripped ffmpeg that reports missing filters as syntax errors):

node <skill>/scripts/doctor.mjs
node <skill>/scripts/workspace.mjs --ensure   # prints workspace, seeds registry

Workspace resolution order: SCROLLCRAFT_HOME env var; nearest .scrollcraft.json ({ "workspace": "..." }) walking up from cwd; <project root>/scrollcraft. Builds live at <workspace>/builds/<name>/, the fingerprint registry at <workspace>/FINGERPRINTS.md (seeded from templates/FINGERPRINTS.md, starts empty — the gate stops you repeating yourself).

Copy engine/scrollcraft.js and engine/scrollcraft.css into the build folder. Never edit the engine per-project. Theme with tokens; write your own markup. Bespoke behaviour is bespoke JS in the page, driven off --sc-p and your own data-sc-* attributes.

Step 1: The brief, journey first

Ask the subject open, in plain prose. Then ask only what Step 0 did not cover: what is this and who is it for; the one sentence the page installs; the one next action (one label, used everywhere); what they already have; art direction from references/worlds.md. Then write the journey: four to seven beats, each a shift in what the visitor knows or feels. Beats are the spine; a section serving no beat is cut. Confirm the journey with the user before generating assets — assets are the expensive part.

Step 2: Grammar, gate, then score

Full detail in references/uniqueness.md.

  • Pick a grammar. Eight, mutually exclusive. Choosing filmic one-shot means saying in the report why the other seven lost. Nav, hero and close follow from the grammar.
  • Invent the signature move. One bespoke interaction coded in the page, not a parameter change to a kit device. Interview question 5 is the seed.
  • Run the fingerprint gate. The planned build must differ from every row in <workspace>/FINGERPRINTS.md on at least 4 of 6 dimensions: grammar, nav treatment, hero device, act-sequence shape, close pattern, signature move. If it fails, change the plan, not the log.
  • Write the feeling curve before the score table (method: references/feel.md). Then assign each beat a device in a written table (beat / device / why).

Checks before building: grammar bans hold; 4+ device families; no device twice in a row; at most two scrub acts; no two adjacent acts with the same feeling; one peak with the largest span; total page length 8–14 viewport-heights.

Step 3: Assets

Full pipeline, prompt scaffolds and model notes: references/assets.md.

Hermes-native paths first:

  • User-supplied footage and photos — no key, no spend, a first-class route. Grade and encode them.
  • The image_generate tool for stills: one style preamble reused verbatim in every prompt is what makes six images look like one shoot. Inspect every asset (vision_analyze) before use; rerolling beats shipping a bad frame.

Optional upstream path — kie.ai (vendored verbatim as scripts/kie.mjs): photoreal stills and camera-move clips. Requires the KIE_AI_API_KEY environment variable (export it in your shell; there is no bundled env file in this port). Check balance with node <skill>/scripts/kie.mjs probe; a still costs cents, a 5s clip more.

node <skill>/scripts/kie.mjs still "<style preamble>\n\n<scene>" out/01-hero.png --ar 16:9
node <skill>/scripts/kie.mjs shot  "<camera move>" out/01-hero.png out/01.mp4 --dur 5
bash  <skill>/scripts/encode.sh out/01.mp4 assets/01.mp4
bash  <skill>/scripts/encode.sh out/01.mp4 assets/01-m.mp4 mobile

Encode for scrubbing, not playback. encode.sh sets a dense GOP because seeking walks from the previous keyframe; a normal web encode scrubs like mud. It also strips audio.

Step 4: Build the page

Write real HTML — real <h1>, real <p>, real reading order. The engine reads data-sc-* attributes off your markup and drives it; it never generates DOM. Start from references/template.html. Device patterns: references/devices.md. Spacing, type, depth, colour: references/taste.md — read it before writing markup. Theme by overriding tokens, six values and two fonts:

:root {
  --sc-canvas: #0A0806;  --sc-surface: #16110E;
  --sc-ink:    #F5EBDD;  --sc-ink-soft: #A2968A;
  --sc-accent: #FF5A3D;  --sc-accent-ink: #15110F;
  --sc-font-display: "Archivo", system-ui, sans-serif;
  --sc-font-text:    "Geist", system-ui, sans-serif;
}

Step 5: Verify by scrolling it

Not optional. Every scroll position is a different frame; failures live between the two you looked at. Full procedure: references/verify.md.

cd <build project> && npm i playwright-core     # once
node <skill>/scripts/serve.mjs --root . --port 4500 &
node <skill>/scripts/shoot.mjs --url http://localhost:4500 --out lab/shots
node <skill>/scripts/shoot.mjs --url http://localhost:4500 --out lab/mobile --width 390 --height 844
node <skill>/scripts/shoot.mjs --url http://localhost:4500 --out lab/reduced --reduced-motion

The harness walks each act at six positions, waits for scrub video to settle, reports dead scroll, cues that never reach full opacity, and composited contrast; it writes a contact sheet. Then read sheet.png yourself (vision_analyze) — the harness proves a clip advances, not that the page means anything. Run the feel check (references/feel.md §6): scroll cold, one word per act, diff against BRIEF.md. Where they disagree the page is wrong, not the brief.

A green run does not cover a real phone (video decoder, autoplay policy, Low Power Mode). On any reported mobile defect, deploy references/device-diag.html beside the site on the first round and let the device answer.

Hard rules (ship-blockers)

No clay diorama default; no "scroll to explore" cues or animated mouse icons; no 01 / 06 section counters; at most one eyebrow per three sections; no visible em dashes; vary the copy anchor; no device twice in a row; never build before the interview; one engineered peak, not zero or three; the close resolves instead of fading to a footer; curve before devices; one bespoke signature move; 4-of-6 fingerprint clearance against every row; never edit the engine; no full-frame dark overlay for contrast (scrim only where text sits); no text baked into images; no invented statistics; no transition: all or animating width/height/top/left (transform/opacity; clip-path for wipes); no gradient text or neon glow; no audio on scrub clips; never ship without Step 5.

Output

The build folder including BRIEF.md, then a short report: grammar and why the other seven lost, signature move, fingerprint gate result per row, journey, feeling curve and peak, feel-check diff, score table, what you generated, what you verified with screenshots, and what you could not verify. Append the build's row to <workspace>/FINGERPRINTS.md.

Pitfalls

  • scripts/shoot.mjs needs Playwright (npm install playwright or playwright-core plus a Chrome install). Hermes' browser_exec tool is the lighter alternative for scroll-screenshot verification: serve the build, scroll in steps, capture screenshots, and inspect them yourself.
  • scripts/kie.mjs needs KIE_AI_API_KEY and paid credit; prefer image_generate or user assets when the budget is unclear.
  • encode.sh and doctor.mjs expect a full ffmpeg build; distro-stripped ffmpeg reports missing filters as command syntax errors — run scripts/doctor.mjs first.
  • Upstream script invocations above are copied from upstream docs and unverified by this port beyond node --check syntax validation — trust --help/source if drifted.
  • The upstream repo ships worked examples and a change log that are not vendored in this port; see the upstream repository if you want them.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

1password

無料日本語概要

1Passwordに保存したパスワードやAPIキーを、コマンド実行や設定テンプレートで使うためのスキル。CLIの導入、認証、秘密情報の取得・受け渡しを案内します。

  • 1Password CLIの導入と設定
  • 保存済みAPIキーでコマンド実行
  • 設定テンプレートへの秘密情報の埋め込み
NousResearch/hermes-agent25.3万2026年10月12日 更新

3-statement-model

無料日本語概要

損益計算書・貸借対照表・キャッシュフロー計算書を数式で連動させるExcelモデルを作ります。実績と予測の入力、前提を変えた比較、財務三表の整合性確認を段階的に進めます。

  • 財務テンプレートへの実績入力
  • 財務三表が連動する予測の作成
  • 基本・上振れ・下振れシナリオの比較
NousResearch/hermes-agent25.3万2026年10月12日 更新

Run PyTorch training across GPUs with minimal changes.

日本語の概要は準備中です。原文の説明を表示しています。

NousResearch/hermes-agent25.3万2026年10月12日 更新

Set up Actual Computer (actual.inc) inference in Hermes.

日本語の概要は準備中です。原文の説明を表示しています。

NousResearch/hermes-agent25.3万2026年10月12日 更新

adversarial-ux-test

無料日本語概要

技術が苦手で不満を抱きやすい利用者になりきってアプリを試し、操作の分かりにくさや離脱の原因を発見。実際の改善課題と個人的な不満を分け、修正案をまとめます。

  • 公開やデモ前に使いやすさを確認したいとき
  • 新規ユーザーの体験を点検したいとき
  • 登録・課金でのつまずきを探したいとき
NousResearch/hermes-agent25.3万2026年10月12日 更新

agent-merge-conflict-arbiter

無料日本語概要

2つのエージェントが別々に加えた変更のGit競合を、双方の差分と意図から中立的に解決。競合箇所ごとの判断理由を記録し、ビルドやテストで統合結果を確認します。

  • 2つのエージェントのブランチ競合を解消
  • 並行したworktreeの変更を統合
  • 競合する設計判断の理由を確認したいとき
NousResearch/hermes-agent25.3万2026年10月12日 更新

NousResearch のスキルをすべて見る

このスキルの問題を報告する