Communitygithub.com

Minara ユースケース チュートリアル ビデオスキル

このスキルは、Minara のモバイルアプリまたはデスクトップアプリのユースケースや初心者向けチュートリアルビデオを作成します。製品のUIをHyperFramesコードで忠実に再現し、実際のユーザーパスをステップバイステップで解説します。ビデオのサムネイル(カバー)も生成します。

Minara ユースケース チュートリアル ビデオスキル とは?

このスキルは、Minara 製品の実際のフロントエンドコードと画面録画を元に、ユースケースや初心者向けのチュートリアルビデオを作成するための強力なフレームワークです。マーケティング向けデモビデオとは異なり、UI、コピー、インタラクションパスを製品のコードに忠実に再現することを要求します。モバイルアプリとデスクトップアプリの両方をサポートし、それぞれに最適化されたキャンバス仕様(モバイル1080×1920、デスクトップ1920×1080)を提供します。このスキルは、Geistフォント、カスタムイージング関数「minaraSnap」の使用など、一貫したビデオ品質を保証する一連の厳格なルールに従います。ビデオ制作プロセスは、コードレビュー、ストーリーボーディング、タイムライン構築に焦点を当て、実際の製品コードを参照しながら、すべてのクリック、タイピング、画面遷移を視覚的に説明します。ビデオのタイトルカードやサムネイル(カバー)も自動生成します。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/OliviaPp8/minara-video-skills/tree/HEAD/skills/minara-usecase-video

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

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

ドキュメント

/minara-usecase-video — Minara ユースケース チュートリアルビデオ

2026年10月に作成されたケース1(モバイルアプリ:質問→BTC戦略→ワンタップで実行)とケース3(デスクトップ:Strategy Studio:一文→Choice Boxes→バックテスト→最適化→ライブデプロイ)から抽出されました。 デスクトップのリファレンス:assets/pc-monitor-frame.html および assets/helpers-reference.js(ヘルパーは直接コピー可能)。

minara-videoとの違い(最初にお読みください)

minara-video (マーケティングデモ)minara-usecase-video (このスキル)
UI製品をコピーせず、大文字で最小限のリデザイン忠実に再現:フロントエンドコードのコンポーネント、サイズ、色、コピーに従う
コピー独自のマーケティングコピーを作成ボタン/タイトル/プロンプトは製品の原文をそのまま使用(ロケール);文法ミスもそのまま
インタラクションパスカットまたは省略可能完全な実際のパス:すべてのクリック、モーダル、チェックボックスがコードと同じ順序で存在する必要がある
カメラ豊富なカメラワーククリック/タイピング時にのみ顕著にズームインし、それ以外は静止;明瞭性を最優先
画面上のテキスト注釈テキストなしフレーム内にキャプションなし;開始時の3秒間のタイトルカードのみ例外;テキストオーバーレイは別バージョン(別のプロジェクトフォルダ内)
構成複数のシーンを個別にレンダリング単一の連続したコンポジション(画面録画のような)

minara-videoから継承された厳格なルール:Geistフォント、シグネチャイージング minaraSnap = cubic-bezier(0.95,0.03,0,0.98)、トランジション≤0.5秒、Math.random() / repeat:-1 不使用、タイムライン paused:true で window.__timelines に登録、最大ドローダウンが20%を超える戦略については先にオペレーターに確認、テストページはドラッグ可能なタイムラインを持つこと。起動時に、まず Skill(hyperframes) を実行してコンポジションルールを読み込む。

トピックとデモアセット(オペレーター設定、2026年10月15日)

  • 株式戦略が優先:ユースケースはデフォルトで株式/TradFi商品をデモに使用する(例:TradFi 30、個別の米国株、指数)。戦略名、アセットプール、保有資産、ティッカーバーは株式を優先する。
  • 暗号資産は二次的:BTCやETHのような主要なコインは登場可能だが、主役ではない。ビデオに株式と暗号資産の両方がある場合、株式を最初に配置し、より多くの時間を割り当てる。
  • ミームコインは不可:オペレーターがその都度明示的に要求しない限り、ミームコイン(DOGE、PEPE、WIF、BONKなど)をフレーム、アセットプール、ティッカーバー、AI回答、またはサンプルプロンプトに含めない。製品のデフォルトデータにそれらが含まれている場合は、置き換える。
  • スクリプトとストーリーボードを作成する際は、このルールに従ってアセットを選択する。製品資料の例が適合しない場合は、再構築する前に証券商品に置き換え、スクリプトにその置き換えを記載する。

信頼できる情報源(優先順位順)

  1. フロントエンドコード(参照前に最新版をプル;スクリプトの「ベース」セクションにコミット日を記載)
    • Web:製品のWebフロントエンドリポジトリ(最初に git pull を実行)
    • モバイル:製品のモバイルアプリソース(apps/mobile/src)
      • コピー:locales/en.json(中国語版は対応するzhファイル)
      • 色/スペーシング:theme/colors.light.ts、theme/tokens.ts
      • コンポーネント:ui/、features/<module>/(例:features/strategy/strategy-card、run-strategy、running-detail、features/agent/composer)
  2. オペレーターからの画面録画/スクリーンショット(use case/ アセットフォルダ内):レイアウト、階層、実際のビジュアルに使用。⚠️ これらのアセットはUIリファレンスであり、コンテンツリファレンスではありません — 「エージェントの発言は無視」;回答コンテンツは自分たちでデザインする。
  3. スクリプトmd:ショットの内訳、ライン、テキストオーバーレイ。

ビデオで表示する必要があるが、コードがサポートしていないインタラクション(例:ケース1のチャット内のクリック可能な戦略カード)は構築可能ですが、そのインタラクションは現在のコードにはまだない計画中のものであることをオペレーターに明確に伝え、最も近い既存のコンポーネントから再構築する(ケース1は MarketplaceStrategyCard に従い、実行をタップするとマーケットプレイスと同じ実行パスをたどる)。

ワークフロー

1. スクリプトを確認する

  • 各ショットを最新のコードと照合する:ボタン名、ページ順序、必要な手順(例:リスク開示チェックボックス、デプロイ前にバックテストが成功する必要がある)、しきい値の数値。
  • スクリプトを編集する場合、オペレーターは通常「元のファイルを上書きする」と言います;提案のみを求める場合は「最初に提案をください、スクリプトは編集しないで」と言います — これらを見分けてください。
  • 1つのmdに複数のケースが含まれている場合は、必要に応じて単一ケースのファイルに分割します。

2. インタラクションパスから逆算してストーリーボードを作成する

  • コードからの実際のパスをテーブルとしてリストする:各画面のタイトル、コンポーネント、クリックターゲット、次の画面。例(モバイル、戦略の実行): Run → Select Wallet → Next → Configuration (Risk Control drawdown cap / auto-update / check risk disclosure) → Run → success page Running (View Details / Notify me) → Running Strategy Details → back → Strategy tab Running
  • タイムラインがある場合は、直接 storyboard.html(テンプレート assets/storyboard-template.html)に進み、次に1秒あたりのスケジュールを作成する;オペレーターが確認した後にのみコードを作成する。

3. 仕様

項目モバイルアプリデスクトップ
キャンバスコンポジション1080×1920、エクスポート1440×2560 / 60fpsコンポジション1920×1080、エクスポート2560×1440 / 60fps
UI390pt幅のアプリ画面、フレームの**90%**に拡大縮小、全辺にマージン、角丸 + 1pxボーダー1440×810のWebページをコンピュータモニター(暗いベゼル+スタンド、スケール1.15)内に配置、フォントサイズは製品の元のサイズより10〜15%大きく
テーマ/言語オペレーターが設定;デフォルトは英語+アプリのデフォルトのライトテーマ左と同じ
デモデータ3〜4桁のPnL、ドローダウン<20%、デモとしてマーク左と同じ
オープニング0〜3秒のタイトルカード、その後ウォークスルー左と同じ

モバイル座標系:K = 1080*0.9/390、#app を left:54px; top:96px に配置、transform: scale(K)。すべての要素CSSをアプリ内のpt座標で記述し、コード内のサイズから再構築します。

デスクトップ座標系:K = 1.15、OX = 132、OY = 38(フレーム内の画面の左上隅のpx位置)、1440×810 pt。レイアウト:左サイドバー264 / 中央カラム766 / 右アシスタント410、下部ティッカーバー26。

デスクトップはコンピュータモニターを使用する必要があります(オペレーター設定、2026年10月15日):製品UIはフレームを満たさなくなりました;コンピュータモニターの画面内に配置され、その背面にモニターのベゼルとスタンドがあります。assets/pc-monitor-frame.html を直接使用します:

  • 構造:#cam > #stand-neck + #stand-base + #monitor > #screen > #app。モニター外形1684×959.5、left 118 / top 24、14pxベゼル、26角丸;画面1656×931.5、12角丸;スタンドはモニターの下中央に配置。背景は暗いラジアルグラデーションを維持。
  • モニターとスタンドは両方とも #cam 内にあるため、プッシュイン時にUIと一緒に拡大縮小されます;カーソルとクリックリップルも #cam 内にあり、OX + x*K、OY + y*K で配置されます。camTo の式は変更されません;3つの値 K / OX / OY のみを交換します。
  • UIはフレームを満たしていた時よりも約14%小さくなっているため(1.333 → 1.15)、ワイドショットではテキストが少し小さくなります;クリックやタイピング中のプッシュインがそれを補います。オペレーターがワイドショットのテキストが小さすぎると感じた場合は、フォントサイズ仕様に従ってすべてを一段階上げます;モニターは削除しないでください。
  • オープニングタイトルカードがフェードアウトした後、モニター全体(スタンドを含む)が1.04倍からフェードインします。
  • モバイルはモニターを取得しません;現在の角丸とボーダーのある90%画面を維持します。

フォントサイズ仕様(デスクトップ;オペレーター、2026年10月15日:「ユーザーが携帯電話で読めるようにUI全体のフォントを少し大きくしてください」) — 最終ビデオは携帯電話で視聴されるため、これらのサイズが最小値です:

要素pt
ページタイトル(戦略名)21
サイドバーナビゲーション / タブ / ツールバー / ボタン / サブタブ16–16.5
アシスタント本文 / ユーザーバブル / Choice Boxオプション説明15 / 15 / 14
Choice Box質問 / オプション名17.5 / 16
メトリックカードラベル / 値14 / 22
テーブル / コード15 / 14.5(行の高さ24)
モーダルタイトル / フィールドラベル / 入力、チップ、ボタン20 / 14.5 / 15.5–16

大きなテキストが収まらなくなった場合は、小さなマイナーテキストを削除します(例:メトリックカードの「1,264 Trades」や「684W 580L」);フォントサイズは縮小しないでください。モバイル画面をデスクトップビデオに配置する場合は、スケール1.2、中央揃えを使用します。

オープニングタイトルカード(2026年10月15日の仕様):0〜3秒の暗い背景、中央に配置された1つの大きな見出し(Geist 76px / 650、text-wrap: balance)、単語が1つずつ上昇(0.09秒間隔);2.55秒で見出しが拡大しフェードアウト;2.75秒で製品UIが1.04倍から1倍にフェードイン。見出しのコピーはオペレーターから提供されます(例:ケース3「トレーディングアイデアをライブ戦略に変える」)。実装:ウォークスルーを tl(pausedではない)に記述し、タイトル用の外部 master = gsap.timeline({paused:true}) を使用し、master.add(tl, 3) とし、master を登録します;data-duration とテストページの DUR の両方に3を追加します。

4. コンポジションを作成する

プロジェクトを $VIDEO_WORKSPACE/hyperframes/<slug>/ に配置します:

index.html        シングルコンポジション(data-composition-id="main")
_test.html        テストページ(assets/test-wrapper.html をコピー、DUR とタイムライン ID を変更)
assets/           ローカルの gsap、CustomEase、Geist woff2、minara-avatar.png(CDN依存なし)
references/       ソースアセットのコピー
audio/            lines.tsv(ナレーションコピー)、vo-placement.tsv(タイミング)
storyboard.html / _backups/ / output/

コアヘルパーは assets/helpers-reference.js(ケース1の実際のコード)にあります:

  • R(el):モーションアニメーションの前に、要素のアプリ内pt座標を測定し、MAP に保存します。以降のすべてのクリックはこれらの予測座標を使用します — 画面がフレーム外に押し出された後に測定すると390ptずれてしまい、カーソルが合いません。
  • camTo(t, px, py, s, d) / camReset:カメラのプッシュイン。s>1 の場合、フォーカスポイントを中央に向かって少し引き寄せます(デスクトップ:720+(px-720)*0.75、yも同様);位置がフレーム内に収まるようにクランプし、外側が表示されないようにします。変数 curS を使用して現在のスケールを追跡します(camTo が設定、camReset が1に戻す)。
  • curShow / curMove / tap / moveTap:モバイルは半透明のソフトタッチポイントを使用し、デスクトップは白い矢印カーソルを使用します;クリックは押下+リップルを伴います。curS>1 の場合、moveTap はクリックターゲットへの camTo を同期的に実行(duration = move duration + 0.15s)するため、ズームイン中にフレームが自動的にカーソルを追跡します。
  • pushIn / pushBack:水平方向のページプッシュ、0.45秒。
  • splitWords + stream:AI回答が単語ごとにストリーミング表示されます。

5. カメラとペーシング(オペレーター自身の言葉から設定されたルール)

  • 「マウスクリック時やタイピング時は、その特定のアクションのエリアにズームインし、フレームはマウスを追従できます;クリックしていない時は、ズームインする必要はありません。」
  • 「カーソルが移動するズームをより目立つようにする」(2026年10月15日、古い≤1.25の上限を置き換え)。デスクトップのスケール:
    アクションスケール
    タイピング(入力ボックス)1.7
    ボタン/タブ/サイドバーのクリック1.6
    アシスタントチャット、Choice Boxの閲覧1.5
    モーダル内の連続アクション1.45、カーソルに追従
    モバイルのケース1では1.25を使用しました;新しいモバイルビデオも「目立つ」ようにする必要があります — スケールをオペレーターに確認してください。
  • 連続クリック(Choice Boxオプション、デプロイ手順のモーダル)では、クローズアップを維持し、常に追従します;毎回引き出して押し戻すことはしません。
  • クリックによって視聴者が確認する必要がある結果(タブの切り替え、By symbol / Fills、バックテスト結果の表示、メトリクスの更新、AI生成後のツールバー値の入力)が表示される場合、クリックの0.5〜0.6秒後にワイドショットに引き戻します。
  • ズームイン時、モーダルの上下の端がフレームから一時的に外れることは許容されますが、カーソルとクリック対象のターゲットはフレーム内に留まり、テキストがフレームの端に接触してはいけません。
  • 「派手なカメラワークは不要;主な目標は各ステップを明確に示すこと」;通常のナレーションペースで切り替え、途切れないようにします。
  • フレーム内にキャプションはありません。

6. 忠実度チェックリスト(ケース1からの落とし穴)

  • タイピングエフェクト:文字ごとに1つの <span> を使用し、tl.set(span,{display:'inline'}) で1つずつ表示します。毎フレーム textContent 全体を書き換えないでください — シークバック時に誤った中間値が残ります(v2ではプレースホルダーテキストの上に余分な「C」が重なっていました)。
  • 入力ボックスの行折り返し:セットアップ中に、文字を1つずつ表示して、どの文字が2行に折り返され、高さがどれだけ増加するかを測定します;その時点で、その上のクイッククエスチョンカードを同期して移動します。
  • レイヤリング:クイッククエスチョンカードは入力ボックスの白い背景マスクの上に配置する必要があります;詳細ページはタブバーを覆う必要があります(詳細ページのz-index > tabbar)。
  • クラス名の衝突を避ける:テキストオーバーレイレイヤーは hz- プレフィックスを使用します(hz-main / hz-note / hz-cta);かつて実行パネルの .cta と衝突し、黒いバーが発生しました。
  • ページ切り替え後のコンテンツはステータスバー/トップバーの下にスライドしてはいけません;テーブルは灰色の背景を引き継いではいけません。
  • fromTo では常に immediateRender:false を使用します。そうしないと、シーク時に最初のフレームが正しく表示されません。
  • フレームグラブは以下をカバーする必要があります:すべてのクリックの前後、タイピング中、行折り返しの瞬間、すべてのページ切り替え後。

デスクトップの追加事項(ケース3からの落とし穴)

  • クラス名の衝突を避ける:コンポーザーのモデルピッカーはかつて .md を使用していましたが、モーダルの .md と衝突し、ブロック全体が入力ボックスの外に出てしまいました。モーダル、テキストオーバーレイ、コンポーネントにはそれぞれ独自のプレフィックスを付けます。
  • ボタンには拡大されたフォントサイズに対応する十分な幅を持たせます(例:「Run Backtest」≥160pt)。そうしないと、ラベルが2行に折り返されます。
  • アシスタントでは、バブル、Choice Box、返信を動的に実際の高さで積み重ねます(セットアップ中に offsetTop/offsetHeight を読み取り、順番にレイアウトし、チャットのスクロールを計算します...

(翻訳は省略されました)

Individual skills in this repo

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

OliviaPp8/minara-video-skills

Create Minara product guide/tutorial videos from screen recordings supplied by the operator. Use for /minara-guide-video, “给录屏加字幕配音”, retiming a new recording cut, building a timeline approval player, or correcting caption/product meaning. Drives caption-recording from source analysis through pre-render approval, final verification, and local delivery. Not for synthetic HyperFrames marketing videos.

OliviaPp8/minara-video-skills

Generate background music and synced sound effects for Minara videos from the per-second script. Translates each scene's mood and on-screen actions (taps, typing, success, notifications, transitions) into a cue sheet, then renders BGM + SFX locally (numpy synth, no external service), with optional ducking under the voiceover. Use for /minara-music, "配乐", "生成音乐", "BGM", "按脚本生成音乐", "加音效", or when a minara-video / minara-guide-video project needs a music bed.

OliviaPp8/minara-video-skills

Write Minara video scripts before any animation work — launch / promo films, single-scene supplements, use case tutorials. Turns a brief, product screenshots, frontend code, Figma frames or a feature note into an English-only script doc built around a keyframe sheet; each keyframe has a still image (rendered from UI code, exported from Figma, or AIGC-generated from screenshots), a picture description, the voiceover line, on-screen text (花字) with style, timing and duration, and the BGM style / sound cues. Also covers what each scene must land, user flow + UI copy, voiceover word budget and open questions, in a calm, neutral, natural voice. Then hands off to minara-video, minara-usecase-video and minara-music. Use for /minara-videoscript, "写视频脚本", "视频脚本", "分镜脚本", "关键帧", "关键帧脚本", "花字", "补充脚本", "旁白稿", "video script", "voiceover script", "keyframes".

OliviaPp8/minara-video-skills

The operator's standard workflow for making Minara marketing / launch / demo videos. Built on the hyperframes skill, with a stricter process - confirm style → high-level storyboard → copy → build each scene separately → confirm a per-second script → iterate on a local test page → render only once the user is satisfied.

関連スキル