[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H7HBFTSSAE7GD67TQJ7SGG":3,"skill-same:01M6H7HBFTSSAE7GD67TQJ7SGG":87},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":6,"updatedAt":62,"install":63,"resources":76},"01M6H7HBFTSSAE7GD67TQJ7SGG","design-intent",null,"MUST USE when starting a new video project, when the user provides footage and asks to edit\u002Fcreate a video, or when 01_intent\u002Fcreative_brief.yaml does not yet exist. This skill interviews the user to understand their intent before any editing begins. Never skip this step.","mocchalera\u002Fvideo-os-v2","mocchalera","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F128188806?v=4","01M6H7GSPJ58ZJ5BA2B9BH7TP0","Takuma Sakamoto","01M6H7GSTXRC8VAD9WCQZFTYXB",5,"MIT","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fdesign-intent\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"design","intent","design intent","create","yaml","brief","Video","editing","edit","user","use","never","creative","project","understand","interviews","2026-11-10 10:12:30",false,"---\nname: design-intent\ndescription: \"MUST USE when starting a new video project, when the user provides footage and asks to edit\u002Fcreate a video, or when 01_intent\u002Fcreative_brief.yaml does not yet exist. This skill interviews the user to understand their intent before any editing begins. Never skip this step.\"\nmetadata:\n  filePattern:\n    - '**\u002F01_intent\u002Fcreative_brief.yaml'\n    - '**\u002F01_intent\u002Funresolved_blockers.yaml'\n  bashPattern: []\n---\n# design-intent — 意図ヒアリング\n\n## いつ使うか（必ず発火する条件）\n\n- ユーザーが素材を渡して「編集して」「動画を作って」「粗編集して」と言ったとき\n- 新しいプロジェクトを開始するとき（`01_intent\u002Fcreative_brief.yaml` が存在しない）\n- `full-pipeline` の Step 2 として呼ばれたとき\n- 「意図を決めて」「creative brief を作って」と明示的に言われたとき\n\n**このスキルを省略してはいけない。** brief なしに triage や blueprint に進むと、エージェントの判断基準がなくなり品質が下がる。\n\n## 前提条件\n\n- `schemas\u002Fcreative-brief.schema.json` と `schemas\u002Funresolved-blockers.schema.json` を守ること\n- 可能なら `03_analysis\u002Fassets.json` と `03_analysis\u002Fsegments.json` を読み、素材理解を反映すること\n- `runtime\u002Fcommands\u002Fintent.ts` の dialogue flow に沿うこと:\n  1. purpose capture → 2. constraint capture → 3. autonomy capture → 4. blocker extraction → 5. readback confirmation\n\n## やること（ステップ）\n\n### Step 1: 素材を把握する\n- `03_analysis\u002Fassets.json` があれば読んで、素材の本数・尺・内容を把握する\n- `segments.json` の `peak_analysis` や `display_name` があれば、どんなシーンがあるかを理解する\n- 素材がまだ分析されていなければ、先に `analyze-footage` スキルを実行する\n\n### Step 2: ユーザーにヒアリングする（省略不可）\n\n**references\u002Finterview-questions.md を参照し、以下の Phase に沿って質問する。**\n\n#### Phase 1: 目的と背景（プロデューサー視点）— 必須\n- 何のための映像か\n- 誰に見せるか\n- 見た人にどうなってほしいか\n- 期限や制約\n\n#### Phase 2: 素材の理解（ディレクター視点）— 素材がある場合は必須\n- 一番見せたいシーン\n- 使いたくない素材（NG カット）\n- 時系列は重要か\n- BGM のイメージ\n\n#### Phase 3: トーンと演出（演出家視点）\n- 全体の雰囲気\n- 感情のカーブ\n- テロップの要否\n- 避けたい演出\n\n#### Phase 4: 自律性の確認（コラボレーション設計）— 必須\n- エージェントに任せてよい判断\n- 必ず確認してほしい判断\n\n#### Phase 5: マーケティング視点（該当する場合のみ）\n- 配信プラットフォーム\n- アスペクト比\n\n#### Phase 6: 複数納品物の分離（複数尺・複数比率の場合は必須）\n- 長尺と短尺、横型と縦型で `audio_policy`、CTA、字幕量、冒頭 hook を個別に確認する\n- 「BGMなし」など1本への判断を、別尺・別プラットフォームへ暗黙に継承しない\n- runtime、delivery、audio、CTA のいずれかが異なる納品物は、原則として納品物ごとの brief を作る。共通 brief を使う場合も variant ごとの差分を明記する\n\n**質問のルール:**\n- 1回の質問は最大3つまで。質問攻めにしない\n- ユーザーの最初の説明で明らかな項目はスキップしてよい\n- 曖昧な回答は深掘りする（「いい感じに」→「具体的には？」）\n- ユーザーの言葉をそのまま brief に使う\n\n### Step 3: creative_brief.yaml を作成する\n\n**references\u002Fcreative-brief-schema-guide.md を参照し、ユーザーの回答をフィールドにマッピングする。**\n\n必須フィールド:\n- `project.title`, `project.strategy`, `project.runtime_target_sec`\n- `message.primary`\n- `audience.primary`\n- `emotion_curve`, `must_have`, `must_avoid`\n- `autonomy.mode`, `autonomy.may_decide`, `autonomy.must_ask`\n- `resolved_assumptions`\n- 短尺SNSでは `audio_policy` を必ず明示する。CTAが目的に含まれる場合は、表示文言と期待アクションを `must_have` に明記する\n\n### Step 4: unresolved_blockers.yaml を作成する\n- ヒアリングで解決できなかった疑問を blocker として記録\n- 各 blocker: `id`, `question`, `status`, `why_it_matters`, `allowed_temporary_assumption`\n- `status: blocker` は compile gate を止める hard blocker\n\n### Step 5: 読み返し確認（省略不可）\n- 作成した brief をユーザーに読み返す\n- 「この内容で進めてよいですか？」と確認する\n- 修正があれば反映する\n\n## 出力 artifact\n- `01_intent\u002Fcreative_brief.yaml`\n- `01_intent\u002Funresolved_blockers.yaml`\n\n## 注意事項\n- `unresolved_blockers.yaml` の `status: blocker` は compile gate を止める\n- `allowed_temporary_assumption` は `null` か文字列で必ず埋める\n- `content_hint` は VLM の認識精度に直結するので、ユーザーの説明から必ず抽出する\n- profile (`keepsake`, `commercial` 等) から `duration_mode` が自動推定される\n- **brief を埋める前にユーザーに聞く。推測で埋めない。**\n","# design-intent — 意図ヒアリング\n\n## いつ使うか（必ず発火する条件）\n\n- ユーザーが素材を渡して「編集して」「動画を作って」「粗編集して」と言ったとき\n- 新しいプロジェクトを開始するとき（`01_intent\u002Fcreative_brief.yaml` が存在しない）\n- `full-pipeline` の Step 2 として呼ばれたとき\n- 「意図を決めて」「creative brief を作って」と明示的に言われたとき\n\n**このスキルを省略してはいけない。** brief なしに triage や blueprint に進むと、エージェントの判断基準がなくなり品質が下がる。\n\n## 前提条件\n\n- `schemas\u002Fcreative-brief.schema.json` と `schemas\u002Funresolved-blockers.schema.json` を守ること\n- 可能なら `03_analysis\u002Fassets.json` と `03_analysis\u002Fsegments.json` を読み、素材理解を反映すること\n- `runtime\u002Fcommands\u002Fintent.ts` の dialogue flow に沿うこと:\n  1. purpose capture → 2. constraint capture → 3. autonomy capture → 4. blocker extraction → 5. readback confirmation\n\n## やること（ステップ）\n\n### Step 1: 素材を把握する\n- `03_analysis\u002Fassets.json` があれば読んで、素材の本数・尺・内容を把握する\n- `segments.json` の `peak_analysis` や `display_name` があれば、どんなシーンがあるかを理解する\n- 素材がまだ分析されていなければ、先に `analyze-footage` スキルを実行する\n\n### Step 2: ユーザーにヒアリングする（省略不可）\n\n**references\u002Finterview-questions.md を参照し、以下の Phase に沿って質問する。**\n\n#### Phase 1: 目的と背景（プロデューサー視点）— 必須\n- 何のための映像か\n- 誰に見せるか\n- 見た人にどうなってほしいか\n- 期限や制約\n\n#### Phase 2: 素材の理解（ディレクター視点）— 素材がある場合は必須\n- 一番見せたいシーン\n- 使いたくない素材（NG カット）\n- 時系列は重要か\n- BGM のイメージ\n\n#### Phase 3: トーンと演出（演出家視点）\n- 全体の雰囲気\n- 感情のカーブ\n- テロップの要否\n- 避けたい演出\n\n#### Phase 4: 自律性の確認（コラボレーション設計）— 必須\n- エージェントに任せてよい判断\n- 必ず確認してほしい判断\n\n#### Phase 5: マーケティング視点（該当する場合のみ）\n- 配信プラットフォーム\n- アスペクト比\n\n#### Phase 6: 複数納品物の分離（複数尺・複数比率の場合は必須）\n- 長尺と短尺、横型と縦型で `audio_policy`、CTA、字幕量、冒頭 hook を個別に確認する\n- 「BGMなし」など1本への判断を、別尺・別プラットフォームへ暗黙に継承しない\n- runtime、delivery、audio、CTA のいずれかが異なる納品物は、原則として納品物ごとの brief を作る。共通 brief を使う場合も variant ごとの差分を明記する\n\n**質問のルール:**\n- 1回の質問は最大3つまで。質問攻めにしない\n- ユーザーの最初の説明で明らかな項目はスキップしてよい\n- 曖昧な回答は深掘りする（「いい感じに」→「具体的には？」）\n- ユーザーの言葉をそのまま brief に使う\n\n### Step 3: creative_brief.yaml を作成する\n\n**references\u002Fcreative-brief-schema-guide.md を参照し、ユーザーの回答をフィールドにマッピングする。**\n\n必須フィールド:\n- `project.title`, `project.strategy`, `project.runtime_target_sec`\n- `message.primary`\n- `audience.primary`\n- `emotion_curve`, `must_have`, `must_avoid`\n- `autonomy.mode`, `autonomy.may_decide`, `autonomy.must_ask`\n- `resolved_assumptions`\n- 短尺SNSでは `audio_policy` を必ず明示する。CTAが目的に含まれる場合は、表示文言と期待アクションを `must_have` に明記する\n\n### Step 4: unresolved_blockers.yaml を作成する\n- ヒアリングで解決できなかった疑問を blocker として記録\n- 各 blocker: `id`, `question`, `status`, `why_it_matters`, `allowed_temporary_assumption`\n- `status: blocker` は compile gate を止める hard blocker\n\n### Step 5: 読み返し確認（省略不可）\n- 作成した brief をユーザーに読み返す\n- 「この内容で進めてよいですか？」と確認する\n- 修正があれば反映する\n\n## 出力 artifact\n- `01_intent\u002Fcreative_brief.yaml`\n- `01_intent\u002Funresolved_blockers.yaml`\n\n## 注意事項\n- `unresolved_blockers.yaml` の `status: blocker` は compile gate を止める\n- `allowed_temporary_assumption` は `null` か文字列で必ず埋める\n- `content_hint` は VLM の認識精度に直結するので、ユーザーの説明から必ず抽出する\n- profile (`keepsake`, `commercial` 等) から `duration_mode` が自動推定される\n- **brief を埋める前にユーザーに聞く。推測で埋めない。**\n",{"name":5,"metadata":50,"description":7},{"bashPattern":51,"filePattern":52},[],[53,54],"**\u002F01_intent\u002Fcreative_brief.yaml","**\u002F01_intent\u002Funresolved_blockers.yaml","main","04c39350f915f9ee96edc25b4dd9a8c1dee305e0",".agents\u002Fskills\u002Fdesign-intent",1,"https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2","https:\u002F\u002Fgithub.com\u002Fmocchalera","https:\u002F\u002Fnote.com\u002Fsakamototakuma","2026-09-04 12:49:17",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add mocchalera\u002Fvideo-os-v2 --skill design-intent",{"tool":69,"command":70},"bunx","bunx skills add mocchalera\u002Fvideo-os-v2 --skill design-intent",{"tool":72,"command":73},"pnpm","pnpm dlx skills add mocchalera\u002Fvideo-os-v2 --skill design-intent","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fdesign-intent\u002FSKILL.md",true,[77,83],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fcreative-brief-schema-guide.md","REFERENCE","参考文档",2489,"https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fdesign-intent\u002Freferences\u002Fcreative-brief-schema-guide.md",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Finterview-questions.md",3857,"https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fdesign-intent\u002Freferences\u002Finterview-questions.md",[88,94,105,111,119,128],{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":45},"01M6H7M6WQK93V5GM5W56TSS2B","artifact","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill_contracts\u002Fwarnings\u002F.agents\u002Fskills\u002Fartifact\u002FSKILL.md",[],[90],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":45},"01M6H7M30SN7B0H19J7GR01V2R","finish-creator-short","fixture","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill_contracts\u002Frfa015\u002F.agents\u002Fskills\u002Ffinish-creator-short\u002FSKILL.md",[],[101,102,103,104,97],"short","finish","creator","finish creator short",{"skillNo":106,"name":107,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":45},"01M6H7M025FYS3CP6M36YX9RT2","producer","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill_contracts\u002Fproducers\u002F.agents\u002Fskills\u002Fproducer\u002FSKILL.md",[],[107],{"skillNo":112,"name":113,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":45},"01M6H7KXY9SX4GVG476ZCF2FET","unknown-flag","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill_contracts\u002Ferrors\u002F.agents\u002Fskills\u002Funknown-flag\u002FSKILL.md",[],[117,118],"unknown","unknown flag",{"skillNo":120,"name":121,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":45},"01M6H7KVJ8V10NBZVGM0RXA7CR","missing-template","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill_contracts\u002Ferrors\u002F.agents\u002Fskills\u002Fmissing-template\u002FSKILL.md",[],[125,126,127],"template","missing","missing template",{"skillNo":129,"name":130,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":45},"01M6H7KRRH8G7YSHSMPX2KA6RR","missing-script","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill_contracts\u002Ferrors\u002F.agents\u002Fskills\u002Fmissing-script\u002FSKILL.md",[],[126,134,135],"script","missing script"]