Communitygithub.com

AlessandroFare/fluxychat

HyperFrames CLI 開発ループ(init、add、catalog、capture、lint、check、snapshot、compare、grade-compare、preview、play、present、beats、keyframes、シングルまたはバッチレンダリング、publish、cloud、cloudrun、feedback、lambda、doctor、browser、info、upgrade、skills、compositions、docs、benchmark、telemetry、transcribe、auth、tts、remove-background)を使用します。また、ビルドやレンダリングの失敗診断時にも使用します。validate、inspect、layout は非推奨のエイリアスです。check を使用してください。ローカル、HeyGen ホストクラウド、AWS Lambda、Google Cloud Run でのレンダリングをカバーします。

fluxychat とは?

このスキルは、HyperFrames CLI の設計図ドリブンなビデオ生成ワークフローを定義します。開発者は `npx hyperframes` で始まる一連のコマンドを使用して、スクラッチからコンポジションをスキャフォールド、作成、プレビュー、レンダリングできます。主な機能には、カタログ検索(オンデバイス意味検索を含む)、サブコンポジションのスモークテスト、2段階プレビュー(ストーリーボードと最終確認)、高品質レンダリング(ローカル、Docker、HeyGen クラウド、AWS Lambda、Google Cloud Run 経由)があります。このスキルは、Claude Code、Coder、Cursor などの AI エージェントが、ベストプラクティス(カタログを先に検索する、最終ゲートチェックを実行する、レンダリング前に承認を得るなど)に従ってプロジェクトを確実に進めるための厳格な規約を強制します。また、すべてのコマンドに必須のマニュアルを参照し、フィードバックとバグ報告のための標準化されたプロトコルを定義することで、プライバシーと再現性を確保します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AlessandroFare/fluxychat/tree/HEAD/agent/skills/hyperframes-cli

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

HyperFrames CLI

コマンドは、プロジェクトの指示にラッパーが指定されていない限り、npx hyperframes ... として実行してください。ラッパーがある場合はそれに従ってください。この CLI には Node.js 22 以降と FFmpeg が必要です。

開発ループ

  1. Scaffold: npx hyperframes init <project> またはサイトをキャプチャします。TTY 以外のモードでは、--non-interactive --example=<name> を渡します。
  2. 動作を見つける: 手動でモーションを作成する前に、既に目的の動作を実現するプリミティブを検索します: npx hyperframes catalog --query "readline one line at a timeにヘッドラインを表示"。頭にあるメカニズムではなく、実現したいエフェクトを指定してください。npx hyperframes add <name> でインストールします(/hyperframes-registry を参照)。何も適切なものが見つからない場合のみ、手動で作成します。
  3. 作成: /hyperframes-core を使用してコンポジションを記述します。
  4. 編集中の高速フィードバックを得る: 最初の HTML パス後、および構造変更後に npx hyperframes lint を実行します。
  5. 最終ゲートを実行する: npx hyperframes check を実行します。これはブラウザを開く前に lint を再実行します。冗長な独立した lint 呼び出しを前置しないでください。注釈付きの概要フレームとクロップ検出のために --snapshots を追加します。
  6. サブコンポジションを検査する: index.html が data-composition-src をマウントする場合、中間点のスナップショットをキャプチャし、マウントされた各シーンを検査します。
  7. 最終 Studio プレビューを開く: npx hyperframes preview を実行し、タイムラインプロジェクト URL をユーザーに渡し、修正するかレンダリングするかを尋ねます。
  8. 承認後にのみレンダリングする: イテレーションにはドラフト品質を、納品には高品質を使用します。
  9. 出力を検証する: ファイルが存在し、空でなく、妥当な長さであることを確認します。
# 高速イテレーションチェック。作成中に必要に応じて繰り返します。
npx hyperframes lint

# 必須の最終ゲート。lint を含みます。
npx hyperframes check
npx hyperframes preview
npx hyperframes render --quality high --output out.mp4
test -s out.mp4
ffprobe -v error -show_format out.mp4

check は最初に lint を実行し、その後1つのブラウザセッションと1回のシークパスを使用して、ランタイムエラー、失敗したリクエスト、レイアウト、*.motion.json アサーション、および WCAG コントラストを監査します。永続的な問題は終了コードをゲートします。一時的な entrance または exit の問題は情報提供です。--strict を使用して警告をゲートします。validate、inspect、layout は互換性のためにエイリアスとして残っていますが、新しい指示やスクリプトには使用しないでください。

2つの異なるプレビュー画面

これらの状態を混同しないでください:

画面開くタイミング目的
ストーリーボードコンポジションチェック前、storyboard: yes の場合のみ計画カードとワイヤーフレームスケッチをレビューします。?view=storyboard#project/<name> を開きます。
最終コンポジションプレビューcheck 通過後レンダリング前に組み立てられたタイムラインをレビューします。#project/<name> を開きます。

初期のボードは最終ビデオの承認ではありません。レンダリングには常に hyperframes-core/references/review-loop.md で定義された最終承認が必要です。

サブコンポジションのスモークテスト

静的監査ではすべてのマウント失敗を検出できません。プロジェクトがサブコンポジションを使用する場合、各ホストスロットに対して少なくとも1つの可視の中間点をキャプチャします:

npx hyperframes snapshot --at <t1>,<t2>,<t3>

非常に小さなスタイル未適用コンテンツ、キャンバスサイズのアイコン、欠落したヒーロー要素、またはタイムライン登録タイムアウトは、レンダリングをブロックするマウント欠陥として扱います。対応する修正については hyperframes-core/references/sub-compositions.md を参照してください。

エージェント規約

  • モーションを手動で記述する前にカタログを検索してください。 npx hyperframes catalog --query "<ビートを平易な言葉で>"。検索は完全にローカルです: ホスト型ティアはなく、アカウントも不要で、クエリテキストがどこかに送信されることもありません。デフォルトでは、アイテムの名前、タイトル、説明と共有される語彙でランク付けされるため、カタログ自身の表現を再利用しないフレーズは見逃されます。代わりに意味でランク付けするには --on-device を追加します(以下のオフラインティアを参照)。

  • どのティアが回答したかを読んでください。結果が表示されたことから推測しないでください。 --json を使用すると、エンベロープには query、tier(on-device または words)、tier_detail、dropped、unindexed、shown、total、results に加えて、回答ティアが生成する場合は top_score、ティアが要求されたが実行できなかった場合は warnings が含まれます。words での弱い結果は予想通りです。on-device での同じ結果はバグです。top_score はオンデバイスのみで、背後にしきい値はありません: ランカーはすべてのクエリに対してカタログ全体を何らかの順序で返すため、合格または不合格としてではなく、証拠として読み取ってください。

  • dropped と unindexed はレジストリとオンデバイスインデックスの間の逆の歪みであり、クエリを言い換えてもどちらも修正されません。 dropped は、このレジストリがインストールできないランク付けされた名前をカウントするため、最も強い一致が失われていることを意味します。unindexed は、インデックスがまったく認識できないレジストリの移動をカウントするため、どのクエリでも返すことはできません。レジストリのリフレッシュはいずれの解決策でもありません: そのマニフェストは24時間のTTLを持ち、自己修復します。一方、ベクトルは個別に公開されたアーティファクトであり、~/.hyperframes/catalog/ にフェッチされます。unindexed がゼロより大きい場合、--on-device を再実行するとそのインデックスが再フェッチされるため、ユーザーに提示する救済策はこれです。純粋なオーバーカバレッジの歪み(dropped がゼロより大きく unindexed がゼロ)は再フェッチをトリガーしません。~/.hyperframes/catalog/ をクリアすることが唯一の解決策です。どちらのカウントも結果ではなく名前のカウントであるため、total を超える可能性があります。

  • 意味検索でインストールする価値のあるものが何も返ってこなかった場合は、その旨を伝えてください。 npx hyperframes feedback --search-miss "<実行したクエリ>" --wanted "<必要だった動作>" --tier on-device。これはクエリをどこかに送信する唯一のパスであり、catalog --query が何も送信しないという約束を守るために、まさに別個の意図的なコマンドです。オンデバイスティアが回答し、トップヒットが依然として目的の動作を実行しない場合にミスを報告してください。words ティアでの弱い結果は予想通りであり、報告する価値はありません。返されるのは、カタログにまだない動作のリストであり、インストール数から推測されるのではなく直接読み取られるため、重要なのは、想像したアイテム名ではなく、必要だったエフェクトの表現です。評価は含まれず、評価指標に記録されることもありません。

  • オフラインティアを提案してください。決してサイレントに有効にしないでください。 約33 MBの 1 回限りのダウンロード(bge-small-en-v1.5 の量子化 ONNX ビルドとそのトークナイザー、固定リビジョンにピン留め)とレジストリからのカタログベクトルで、両方とも ~/.hyperframes/ の下にキャッシュされ、プロジェクトやパッケージには追加されません。キャッシュされると、何も送信せずに意味でランク付けされます。サイズを声に出して伝え、ユーザーに決定を委ね、同意が得られたら --on-device(プロンプトをスキップするために -y を付ける)を渡します。インタラクティブな提案は TTY でのみ発火し、--json の下では何も出力されないため、エージェント実行では自分でユーザーに提起する必要があります。

  • エージェントおよび CI 呼び出しには --json を推奨します。サーバーモードの render、preview、play は通常の JSON 出力を提供しません。preview --selection --json および preview --context --json はクエリモードの例外です。

  • doctor --json は常にゼロで終了します。そのペイロードでゲートします:

    npx hyperframes doctor --json | jq -e '.ok' >/dev/null
    
  • 非 TTY モードは自動です。init では --example が必要です。TTY で決定論的な動作を強制するには --non-interactive を使用します。

  • 同じ検証ループ内のすべてのコマンドに1つの HYPERFRAMES_RUN_ID を使用します。

  • 対応する警告、変数、または CI 条件がレンダリングをゲートする必要がある場合は、--strict、--strict-all、--strict-variables を使用します。

  • JSON パスはホームディレクトリを $HOME として秘匿します。秘匿を元に戻そうとしないでください。

  • ホスト型クラウドプロジェクトが200 MBのアップロード制限に近づいているか超えている場合は、cloud render --dry-run --json を使用し、references/cloud.md の .hyperframesignore 調査に従ってください。アセットが大きいという理由だけで無視しないでください。

  • チェックが通過したという理由だけでレンダリングしないでください。最終プレビューで一時停止し、承認を待ちます。

Studio 指示編集

ユーザーが「この要素」または現在の選択範囲に言及した場合、推測する代わりに Studio にクエリします:

npx hyperframes preview --context --json --context-fields selection

利用可能な場合は selection.target.hfId を使用し、それ以外の場合はそのセレクターとソースファイルを使用します。結果が no-selection を報告する場合は、ユーザーに要素をクリックして再実行するよう依頼します。必要なコンテキストスライスのみを要求します。--context-detail full は、計算されたスタイルまたは編集可能なテキストメタデータにのみ使用します。完全な動作と失敗コードは references/preview-render.md にあります。

レンダリングの選択肢

ニーズコマンド
高速ローカルイテレーションnpx hyperframes render --quality draft
最終ローカル納品npx hyperframes render --quality high --output out.mp4
再現可能なコンテナレンダリングnpx hyperframes render --docker --strict --output out.mp4
ローカル変数駆動バッチレンダリングnpx hyperframes render --batch rows.json --output "renders/{name}.mp4"
HeyGen ホスト型ゼロインフラストラクチャレンダリングnpx hyperframes cloud render
自己管理型分散 AWS レンダリングnpx hyperframes lambda render <project> --width 1920 --height 1080 --wait
自己管理型分散 GCP レンダリングnpx hyperframes cloudrun render <project> --width 1920 --height 1080 --wait

スキル属性は自動的です。上記の例には --skill は必要ありません。ワークフロー(hyperframes init --skill=<workflow>)によってスキャフォールドされたプロジェクトは、その所有スキルを hyperframes.json に記録し、その後のすべてのレンダリング(再レンダリング、npm run render、--batch など)は匿名テレメトリでそれを継承します。--skill=<slug> を明示的に渡すのは、ワークフローを介して作成されなかったプロジェクトにスタンプする場合のみです(最初のレンダリングで永続化されます)。

ユーザーがローカルの Chrome、FFmpeg、AWS なしでホスト型レンダリングを希望する場合は、クラウドレンダリングを使用します。AWS の所有権が要件の場合のみ Lambda を使用します。GCP の所有権が要件の場合のみ Cloud Run を使用します。クラウドパスを実行する前に、対応するリファレンスを読んでください。

レンダリングの成功を確認した後、テレメトリが無効化されていない限り、またはユーザーがオプトアウトしていない限り、1つのフィードバックレポートを送信します:

npx hyperframes feedback --rating <0-10> --comment "<具体的な結果または摩擦>"

クリーンラン時のフィードバックは簡潔にしてください。バグや摩擦については、送信前に再現パケットをキャプチャしてください。症状の要約のみを送信しないでください。再実行可能なコマンド(プロジェクトディレクトリからの相対パス。フィードバックは公開チャネルに送信されるため、絶対パス、ホームディレクトリプレフィックス、ユーザー/マシン識別子は貼り付けないでください)、期待される動作と実際の動作、正確なエラー(スタックトレースからも絶対パスを削除し、ベース名 + 行番号を保持し、先頭のディレクトリを削除)、出力が完了/フォールバック/失敗したかどうか、回避策、再現プロジェクトのステータスを含めてください。視覚的な欠陥(黒フレーム、ちらつき、破損出力、間違ったフレーム、空白出力、その他の視覚的異常)を説明する評価 ≤ 7 の場合は、COMPOSITION_STRUCTURE: ブロックも含めてください。これはプライバシーを保護する構造的詳細(要素の種類と数 + 属性の有無 + タイムラインの形状)であり、メンテナーがコンポジション ZIP なしで既知のバグファミリーとパターンマッチングできるようにします。エージェントは composition-census ヘルパーを介してこれを自動入力します。人間のユーザーは手動で記入しません。問題が再現しなかった場合は、その旨を記載し、それでも最後の失敗コマンドとログを含めてください。--file-issue は同意がある場合のみ使用します。これは最小限の再現コードを公開 URL に公開します。必須のパケット形式とプライバシー警告は references/preview-render.md にあります。

コマンドを実行する前に対応するリファレンスを読む

以下のリファレンスと所有スキルは、オプションの背景資料ではなく、必須のコマンド契約です。テーブルのコマンドを実行する前に、対応する行を読んでください。

ニーズリファレンス
init、capture、skillsreferences/init-and-scaffold.md
lint、check、モーションサイドカー、snapshotreferences/lint-validate-inspect.md
compare、grade-compare、変数駆動 render --batchreferences/compare-and-batch.md
既存プロジェクトの Studio ビートグリッド用 beatsreferences/beats.md
preview、play、render、publish、Studio コンテキスト、フィードバックreferences/preview-render.md
doctor、ブラウザ管理references/doctor-browser.md
auth、HeyGen ホスト型クラウドレンダリング、テンプレート変数references/cloud.md
AWS Lambda デプロイとレンダリングreferences/lambda.md
Google Cloud Run デプロイとレンダリングreferences/cloudrun.md
info、upgrade、compositions、docs、benchmark、テレメトリ、メディア前処理references/upgrade-info-misc.md

コンポジション変数の場合、al

…

[翻訳のために一部省略]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

AlessandroFare/fluxychat

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet `anchor` rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.\n

AlessandroFare/fluxychat

Use when audio already placed in a HyperFrames composition needs to be mixed: a music bed that fights a voiceover (voiceover carve), effects on a track (EQ, compressor, limiter, gate, saturation, delay, reverb, chorus, phaser, bitcrush), or automation envelopes drawn on a track's volume or any effect parameter. Don't use for sourcing or generating audio — finding BGM, SFX, or making a voiceover is `/media-use`. Don't use for clip timing or track layout, which is `/hyperframes-core`.\n

AlessandroFare/fluxychat

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

AlessandroFare/fluxychat

Mandatory entry point: read this first for any request to make, create, edit, animate, or render a video, animation, or motion graphic, including a promo, explainer, captioned clip, title card, overlay, slideshow or interactive deck, Remotion port, or any HyperFrames HTML composition. Also use it to inspect, diagnose, validate, preview, publish, or batch-render an existing HyperFrames project. Inputs may be a website URL, GitHub PR, Figma design or URL, text or brief, existing footage, or music. It resumes project state, captures intent when applicable, selects and installs the owning workflow, and routes domain capabilities. HyperFrames is the default output framework unless the user explicitly chooses another framework for the deliverable or asks only to record a browser session.\n

AlessandroFare/fluxychat

Overlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions. Quotes the rail+embed model from embedded-captions and constraint #13 (captions overlay, keep-out band retired) from the product-launch-video scene agent. Applies ON TOP of embedded-captions.

AlessandroFare/fluxychat

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

AlessandroFare/fluxychat

Audit and fix animation performance issues including layout thrashing, compositor properties, scroll-linked motion, and blur effects. Use when animations stutter, transitions jank, or reviewing CSS/JS animation performance.

AlessandroFare/fluxychat

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill.

AlessandroFare/fluxychat

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

AlessandroFare/fluxychat

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Also covers Tailwind projects and the STORYBOARD.md / SCRIPT.md plan formats. Read before writing composition HTML.

AlessandroFare/fluxychat

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

AlessandroFare/fluxychat

Use when a HyperFrames composition needs seek-safe 2D/3D keyframes, GSAP timelines, CSS keyframes, Anime.js, WAAPI, FLIP, paths, masks, SVG morph/draw, text trails, 3D depth, or `hyperframes keyframes` diagnostics. Don't use for broad scene strategy, brand design, media sourcing, captions, or general video planning.

AlessandroFare/fluxychat

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

AlessandroFare/fluxychat

A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI animation (scroll, cursor, callouts), or fusing a real image's geometry into a chart. Usually under 10s (up to ~30s), no narration or live-action subject; renders to MP4 or transparent overlay. Longer / narrated / multi-scene → /general-video. Unclear → /hyperframes.

AlessandroFare/fluxychat

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

AlessandroFare/fluxychat

Turn a product or marketing URL, pasted script, or brief into a product launch / promo video — SaaS promos, feature reveals, product demos, app and company launches. Use when the user wants to market, launch, promote, or reveal a product; the default for any commercial URL. Site tours / showcases of a website route here too — the brief carries the show-it-as-is intent. Unclear → /hyperframes.

AlessandroFare/fluxychat

Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR topic explainer (/faceless-explainer). Unclear → /hyperframes.

AlessandroFare/fluxychat

Design and improve user interfaces using the concrete rules from Refactoring UI (Wathan & Schoger) — constrained spacing/type/color/shadow scales, visual hierarchy through weight and color rather than size, and depth through emulated light. Use when building or styling any UI (web, app, dashboard, landing page, component), when picking font sizes, spacing, colors, shadows or border radius, when designing a color palette or design tokens, and whenever someone says a UI "looks off", "looks amateur", "feels cluttered/plain/unfinished", or asks to "make this look better".

AlessandroFare/fluxychat

Port an existing Remotion (React) composition''s source to HyperFrames HTML. Use ONLY on an explicit ask to port/convert/migrate/translate a Remotion source — one-way, Remotion-only. A passing Remotion mention, reference-only code, or "make something like my Remotion video" is a fresh build (/general-video). Unclear → /hyperframes.

AlessandroFare/fluxychat

Use before UI-related work to select the smallest useful UI Skills context through the ui-skills CLI.

関連スキル