[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H7H34FDV6VCBXPQ2PP1EK0":3,"skill-same:01M6H7H34FDV6VCBXPQ2PP1EK0":69},{"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":18,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6H7H34FDV6VCBXPQ2PP1EK0","compile-timeline",null,"Use when edit_blueprint.yaml and selects_candidates.yaml are ready and the user asks to compile the rough cut, generate timeline.json, or apply a review patch.","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\u002Fcompile-timeline\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"compile timeline","compile","timeline","edit","cut","preview","Blueprint","patch","ready","use","user","review","json","analysis","manifest","yaml","generate","2026-11-10 10:12:30",false,"---\nname: compile-timeline\ndescription: Use when edit_blueprint.yaml and selects_candidates.yaml are ready and the user asks to compile the rough cut, generate timeline.json, or apply a review patch.\nmetadata:\n  filePattern:\n    - '**\u002F05_timeline\u002Ftimeline.json'\n    - '**\u002F05_timeline\u002Fpreview-manifest.json'\n    - '**\u002F05_timeline\u002Fadjacency_analysis.json'\n  bashPattern:\n    - 'compile-timeline'\n---\n# compile-timeline\n## いつ使うか\n- 「コンパイルして」「タイムラインを生成して」と言われたとき。\n- `creative_brief.yaml`, `selects_candidates.yaml`, `edit_blueprint.yaml` が揃っているとき。\n\n## 前提条件\n- `scripts\u002Fcompile-timeline.ts` は compile 前後で `scripts\u002Fvalidate-schemas.ts` 相当の gate を見る。\n- `01_intent\u002Funresolved_blockers.yaml` に `status: blocker` があると compile gate が落ちる。\n- fps を 24 以外にしたい場合は `--fps \u003Cnum>` を明示する。\n\n## やること（ステップ）\n1. 必要 artifact が存在することを確認する。\n2. compile を実行する。\n\n```bash\nnpx tsx scripts\u002Fcompile-timeline.ts projects\u002F\u003Cproject> --fps 30\n```\n\n3. review patch を適用したい場合は patch mode を使う。\n\n```bash\nnpx tsx scripts\u002Fcompile-timeline.ts projects\u002F\u003Cproject> --patch projects\u002F\u003Cproject>\u002F06_review\u002Freview_patch.json --fps 30\n```\n\n4. 出力された `timeline.json`、`preview-manifest.json`、必要なら `adjacency_analysis.json` を確認する。\n5. 既存preview\u002Ffinalがある状態でtimelineを更新した場合、それらをfreshとみなさない。Studio確認前にrenderを再実行し、`playback-contract-status` が `exact` であることを確認する。\n\n## 出力 artifact\n- `05_timeline\u002Ftimeline.json`\n- `05_timeline\u002Fpreview-manifest.json`\n- `05_timeline\u002Fadjacency_analysis.json` ただし active editing skills による transition 解析が走った場合\n\n## 注意事項\n- `scripts\u002Fcompile-timeline.ts` の `createdAt` は `01_intent\u002Fcreative_brief.yaml.created_at` から決まる。\n- patch mode は `timeline.json` を上書きし、同時に `preview-manifest.json` も再生成する。\n- manifest hashだけを手編集して古いpreviewをfresh扱いにしない。\n- `adjacency_analysis.json` は debug \u002F explanation 用 artifact。常に生成されるわけではない。\n- Rhythm Sync (Issue #35): `03_analysis\u002Fbgm_analysis.json`（onset\u002Fdownbeat\u002Fsections）と楽曲アセットの word-level STT（`03_analysis\u002Ftranscripts\u002FTR_\u003Cmusic_asset>.json` の `items[].words[]`）をリズム証拠として、サビ\u002Fブレイク開始のカット境界を ±1.5秒探索で1フレーム精度スナップする（サビは第一声・ダウンビート優先の Hard Snap）。証拠が無い\u002F曖昧な場合は fail-open で `timeline.metadata.rhythm_sync` に `status: degraded` と理由を明示し、クリップのジオメトリは変更しない。スナップ後は `integrity.gap_frames\u002Foverrun_frames = 0` を検証し、`parity` （±2フレーム、サビ頭違反は fail）を `timeline.metadata.rhythm_sync` と `preview-manifest.json.rhythm_sync` の両方へ刻印する。無効化は `runtime\u002Fcompiler-defaults.yaml` の `rhythm_sync.mode: off`。\n","# compile-timeline\n## いつ使うか\n- 「コンパイルして」「タイムラインを生成して」と言われたとき。\n- `creative_brief.yaml`, `selects_candidates.yaml`, `edit_blueprint.yaml` が揃っているとき。\n\n## 前提条件\n- `scripts\u002Fcompile-timeline.ts` は compile 前後で `scripts\u002Fvalidate-schemas.ts` 相当の gate を見る。\n- `01_intent\u002Funresolved_blockers.yaml` に `status: blocker` があると compile gate が落ちる。\n- fps を 24 以外にしたい場合は `--fps \u003Cnum>` を明示する。\n\n## やること（ステップ）\n1. 必要 artifact が存在することを確認する。\n2. compile を実行する。\n\n```bash\nnpx tsx scripts\u002Fcompile-timeline.ts projects\u002F\u003Cproject> --fps 30\n```\n\n3. review patch を適用したい場合は patch mode を使う。\n\n```bash\nnpx tsx scripts\u002Fcompile-timeline.ts projects\u002F\u003Cproject> --patch projects\u002F\u003Cproject>\u002F06_review\u002Freview_patch.json --fps 30\n```\n\n4. 出力された `timeline.json`、`preview-manifest.json`、必要なら `adjacency_analysis.json` を確認する。\n5. 既存preview\u002Ffinalがある状態でtimelineを更新した場合、それらをfreshとみなさない。Studio確認前にrenderを再実行し、`playback-contract-status` が `exact` であることを確認する。\n\n## 出力 artifact\n- `05_timeline\u002Ftimeline.json`\n- `05_timeline\u002Fpreview-manifest.json`\n- `05_timeline\u002Fadjacency_analysis.json` ただし active editing skills による transition 解析が走った場合\n\n## 注意事項\n- `scripts\u002Fcompile-timeline.ts` の `createdAt` は `01_intent\u002Fcreative_brief.yaml.created_at` から決まる。\n- patch mode は `timeline.json` を上書きし、同時に `preview-manifest.json` も再生成する。\n- manifest hashだけを手編集して古いpreviewをfresh扱いにしない。\n- `adjacency_analysis.json` は debug \u002F explanation 用 artifact。常に生成されるわけではない。\n- Rhythm Sync (Issue #35): `03_analysis\u002Fbgm_analysis.json`（onset\u002Fdownbeat\u002Fsections）と楽曲アセットの word-level STT（`03_analysis\u002Ftranscripts\u002FTR_\u003Cmusic_asset>.json` の `items[].words[]`）をリズム証拠として、サビ\u002Fブレイク開始のカット境界を ±1.5秒探索で1フレーム精度スナップする（サビは第一声・ダウンビート優先の Hard Snap）。証拠が無い\u002F曖昧な場合は fail-open で `timeline.metadata.rhythm_sync` に `status: degraded` と理由を明示し、クリップのジオメトリは変更しない。スナップ後は `integrity.gap_frames\u002Foverrun_frames = 0` を検証し、`parity` （±2フレーム、サビ頭違反は fail）を `timeline.metadata.rhythm_sync` と `preview-manifest.json.rhythm_sync` の両方へ刻印する。無効化は `runtime\u002Fcompiler-defaults.yaml` の `rhythm_sync.mode: off`。\n",{"name":5,"metadata":41,"description":7},{"bashPattern":42,"filePattern":43},[5],[44,45,46],"**\u002F05_timeline\u002Ftimeline.json","**\u002F05_timeline\u002Fpreview-manifest.json","**\u002F05_timeline\u002Fadjacency_analysis.json","main","04c39350f915f9ee96edc25b4dd9a8c1dee305e0",".agents\u002Fskills\u002Fcompile-timeline",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":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add mocchalera\u002Fvideo-os-v2 --skill compile-timeline",{"tool":61,"command":62},"bunx","bunx skills add mocchalera\u002Fvideo-os-v2 --skill compile-timeline",{"tool":64,"command":65},"pnpm","pnpm dlx skills add mocchalera\u002Fvideo-os-v2 --skill compile-timeline","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcompile-timeline\u002FSKILL.md",true,[],[70,76,87,93,101,110],{"skillNo":71,"name":72,"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":73,"categories":74,"keywords":75,"publishedAt":36},"01M6H7M6WQK93V5GM5W56TSS2B","artifact","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill_contracts\u002Fwarnings\u002F.agents\u002Fskills\u002Fartifact\u002FSKILL.md",[],[72],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":36},"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",[],[83,84,85,86,79],"short","finish","creator","finish creator short",{"skillNo":88,"name":89,"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":90,"categories":91,"keywords":92,"publishedAt":36},"01M6H7M025FYS3CP6M36YX9RT2","producer","https:\u002F\u002Fgithub.com\u002Fmocchalera\u002Fvideo-os-v2\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill_contracts\u002Fproducers\u002F.agents\u002Fskills\u002Fproducer\u002FSKILL.md",[],[89],{"skillNo":94,"name":95,"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":96,"categories":97,"keywords":98,"publishedAt":36},"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",[],[99,100],"unknown","unknown flag",{"skillNo":102,"name":103,"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":104,"categories":105,"keywords":106,"publishedAt":36},"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",[],[107,108,109],"template","missing","missing template",{"skillNo":111,"name":112,"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":113,"categories":114,"keywords":115,"publishedAt":36},"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",[],[108,116,117],"script","missing script"]