[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GNDB3G2WTQE5GK8D0RKB5J":3,"skill-same:01M6GNDB3G2WTQE5GK8D0RKB5J":227},{"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":26,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6GNDB3G2WTQE5GK8D0RKB5J","remotion-best-practices",null,"Best practices for Remotion - Video creation in React","o2scale\u002FOpenMotion","o2scale","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221178049?v=4","01M6GKT5NTTTHV4CWPYJS17CFN","Anjai Jacob","01M6GKT5T2G2SM3B7S8G49AVAZ",1,"MIT","https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[27,28,29,30,31,32,33,34,35],"best practices","remotion best practices","Remotion","react","Video","Animation","Composition","remotion, video, react, animation, composition","creation","2026-11-10 10:12:30",false,"---\nname: remotion-best-practices\ndescription: Best practices for Remotion - Video creation in React\nmetadata:\n  tags: remotion, video, react, animation, composition\n---\n\n## When to use\n\nUse this skills whenever you are dealing with Remotion code to obtain the domain-specific knowledge.\n\n## Captions\n\nWhen dealing with captions or subtitles, load the [.\u002Frules\u002Fsubtitles.md](.\u002Frules\u002Fsubtitles.md) file for more information.\n\n## Using FFmpeg\n\nFor some video operations, such as trimming videos or detecting silence, FFmpeg should be used. Load the [.\u002Frules\u002Fffmpeg.md](.\u002Frules\u002Fffmpeg.md) file for more information.\n\n## Audio visualization\n\nWhen needing to visualize audio (spectrum bars, waveforms, bass-reactive effects), load the [.\u002Frules\u002Faudio-visualization.md](.\u002Frules\u002Faudio-visualization.md) file for more information.\n\n## Sound effects\n\nWhen needing to use sound effects, load the [.\u002Frules\u002Fsound-effects.md](.\u002Frules\u002Fsound-effects.md) file for more information.\n\n## How to use\n\nRead individual rule files for detailed explanations and code examples:\n\n- [rules\u002F3d.md](rules\u002F3d.md) - 3D content in Remotion using Three.js and React Three Fiber\n- [rules\u002Fanimations.md](rules\u002Fanimations.md) - Fundamental animation skills for Remotion\n- [rules\u002Fassets.md](rules\u002Fassets.md) - Importing images, videos, audio, and fonts into Remotion\n- [rules\u002Faudio.md](rules\u002Faudio.md) - Using audio and sound in Remotion - importing, trimming, volume, speed, pitch\n- [rules\u002Fcalculate-metadata.md](rules\u002Fcalculate-metadata.md) - Dynamically set composition duration, dimensions, and props\n- [rules\u002Fcan-decode.md](rules\u002Fcan-decode.md) - Check if a video can be decoded by the browser using Mediabunny\n- [rules\u002Fcharts.md](rules\u002Fcharts.md) - Chart and data visualization patterns for Remotion (bar, pie, line, stock charts)\n- [rules\u002Fcompositions.md](rules\u002Fcompositions.md) - Defining compositions, stills, folders, default props and dynamic metadata\n- [rules\u002Fextract-frames.md](rules\u002Fextract-frames.md) - Extract frames from videos at specific timestamps using Mediabunny\n- [rules\u002Ffonts.md](rules\u002Ffonts.md) - Loading Google Fonts and local fonts in Remotion\n- [rules\u002Fget-audio-duration.md](rules\u002Fget-audio-duration.md) - Getting the duration of an audio file in seconds with Mediabunny\n- [rules\u002Fget-video-dimensions.md](rules\u002Fget-video-dimensions.md) - Getting the width and height of a video file with Mediabunny\n- [rules\u002Fget-video-duration.md](rules\u002Fget-video-duration.md) - Getting the duration of a video file in seconds with Mediabunny\n- [rules\u002Fgifs.md](rules\u002Fgifs.md) - Displaying GIFs synchronized with Remotion's timeline\n- [rules\u002Fimages.md](rules\u002Fimages.md) - Embedding images in Remotion using the Img component\n- [rules\u002Flight-leaks.md](rules\u002Flight-leaks.md) - Light leak overlay effects using @remotion\u002Flight-leaks\n- [rules\u002Flottie.md](rules\u002Flottie.md) - Embedding Lottie animations in Remotion\n- [rules\u002Fmeasuring-dom-nodes.md](rules\u002Fmeasuring-dom-nodes.md) - Measuring DOM element dimensions in Remotion\n- [rules\u002Fmeasuring-text.md](rules\u002Fmeasuring-text.md) - Measuring text dimensions, fitting text to containers, and checking overflow\n- [rules\u002Fsequencing.md](rules\u002Fsequencing.md) - Sequencing patterns for Remotion - delay, trim, limit duration of items\n- [rules\u002Ftailwind.md](rules\u002Ftailwind.md) - Using TailwindCSS in Remotion\n- [rules\u002Ftext-animations.md](rules\u002Ftext-animations.md) - Typography and text animation patterns for Remotion\n- [rules\u002Ftiming.md](rules\u002Ftiming.md) - Interpolation curves in Remotion - linear, easing, spring animations\n- [rules\u002Ftransitions.md](rules\u002Ftransitions.md) - Scene transition patterns for Remotion\n- [rules\u002Ftransparent-videos.md](rules\u002Ftransparent-videos.md) - Rendering out a video with transparency\n- [rules\u002Ftrimming.md](rules\u002Ftrimming.md) - Trimming patterns for Remotion - cut the beginning or end of animations\n- [rules\u002Fvideos.md](rules\u002Fvideos.md) - Embedding videos in Remotion - trimming, volume, speed, looping, pitch\n- [rules\u002Fparameters.md](rules\u002Fparameters.md) - Make a video parametrizable by adding a Zod schema\n- [rules\u002Fmaps.md](rules\u002Fmaps.md) - Add a map using Mapbox and animate it\n- [rules\u002Fvoiceover.md](rules\u002Fvoiceover.md) - Adding AI-generated voiceover to Remotion compositions using ElevenLabs TTS\n","## When to use\n\nUse this skills whenever you are dealing with Remotion code to obtain the domain-specific knowledge.\n\n## Captions\n\nWhen dealing with captions or subtitles, load the [.\u002Frules\u002Fsubtitles.md](.\u002Frules\u002Fsubtitles.md) file for more information.\n\n## Using FFmpeg\n\nFor some video operations, such as trimming videos or detecting silence, FFmpeg should be used. Load the [.\u002Frules\u002Fffmpeg.md](.\u002Frules\u002Fffmpeg.md) file for more information.\n\n## Audio visualization\n\nWhen needing to visualize audio (spectrum bars, waveforms, bass-reactive effects), load the [.\u002Frules\u002Faudio-visualization.md](.\u002Frules\u002Faudio-visualization.md) file for more information.\n\n## Sound effects\n\nWhen needing to use sound effects, load the [.\u002Frules\u002Fsound-effects.md](.\u002Frules\u002Fsound-effects.md) file for more information.\n\n## How to use\n\nRead individual rule files for detailed explanations and code examples:\n\n- [rules\u002F3d.md](rules\u002F3d.md) - 3D content in Remotion using Three.js and React Three Fiber\n- [rules\u002Fanimations.md](rules\u002Fanimations.md) - Fundamental animation skills for Remotion\n- [rules\u002Fassets.md](rules\u002Fassets.md) - Importing images, videos, audio, and fonts into Remotion\n- [rules\u002Faudio.md](rules\u002Faudio.md) - Using audio and sound in Remotion - importing, trimming, volume, speed, pitch\n- [rules\u002Fcalculate-metadata.md](rules\u002Fcalculate-metadata.md) - Dynamically set composition duration, dimensions, and props\n- [rules\u002Fcan-decode.md](rules\u002Fcan-decode.md) - Check if a video can be decoded by the browser using Mediabunny\n- [rules\u002Fcharts.md](rules\u002Fcharts.md) - Chart and data visualization patterns for Remotion (bar, pie, line, stock charts)\n- [rules\u002Fcompositions.md](rules\u002Fcompositions.md) - Defining compositions, stills, folders, default props and dynamic metadata\n- [rules\u002Fextract-frames.md](rules\u002Fextract-frames.md) - Extract frames from videos at specific timestamps using Mediabunny\n- [rules\u002Ffonts.md](rules\u002Ffonts.md) - Loading Google Fonts and local fonts in Remotion\n- [rules\u002Fget-audio-duration.md](rules\u002Fget-audio-duration.md) - Getting the duration of an audio file in seconds with Mediabunny\n- [rules\u002Fget-video-dimensions.md](rules\u002Fget-video-dimensions.md) - Getting the width and height of a video file with Mediabunny\n- [rules\u002Fget-video-duration.md](rules\u002Fget-video-duration.md) - Getting the duration of a video file in seconds with Mediabunny\n- [rules\u002Fgifs.md](rules\u002Fgifs.md) - Displaying GIFs synchronized with Remotion's timeline\n- [rules\u002Fimages.md](rules\u002Fimages.md) - Embedding images in Remotion using the Img component\n- [rules\u002Flight-leaks.md](rules\u002Flight-leaks.md) - Light leak overlay effects using @remotion\u002Flight-leaks\n- [rules\u002Flottie.md](rules\u002Flottie.md) - Embedding Lottie animations in Remotion\n- [rules\u002Fmeasuring-dom-nodes.md](rules\u002Fmeasuring-dom-nodes.md) - Measuring DOM element dimensions in Remotion\n- [rules\u002Fmeasuring-text.md](rules\u002Fmeasuring-text.md) - Measuring text dimensions, fitting text to containers, and checking overflow\n- [rules\u002Fsequencing.md](rules\u002Fsequencing.md) - Sequencing patterns for Remotion - delay, trim, limit duration of items\n- [rules\u002Ftailwind.md](rules\u002Ftailwind.md) - Using TailwindCSS in Remotion\n- [rules\u002Ftext-animations.md](rules\u002Ftext-animations.md) - Typography and text animation patterns for Remotion\n- [rules\u002Ftiming.md](rules\u002Ftiming.md) - Interpolation curves in Remotion - linear, easing, spring animations\n- [rules\u002Ftransitions.md](rules\u002Ftransitions.md) - Scene transition patterns for Remotion\n- [rules\u002Ftransparent-videos.md](rules\u002Ftransparent-videos.md) - Rendering out a video with transparency\n- [rules\u002Ftrimming.md](rules\u002Ftrimming.md) - Trimming patterns for Remotion - cut the beginning or end of animations\n- [rules\u002Fvideos.md](rules\u002Fvideos.md) - Embedding videos in Remotion - trimming, volume, speed, looping, pitch\n- [rules\u002Fparameters.md](rules\u002Fparameters.md) - Make a video parametrizable by adding a Zod schema\n- [rules\u002Fmaps.md](rules\u002Fmaps.md) - Add a map using Mapbox and animate it\n- [rules\u002Fvoiceover.md](rules\u002Fvoiceover.md) - Adding AI-generated voiceover to Remotion compositions using ElevenLabs TTS\n",{"name":5,"metadata":41,"description":7},{"tags":34},"main","35ab1af26f092e23f61d90dc7258954a8328e7fa","skills\u002Fremotion-best-practices",0,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion","https:\u002F\u002Fgithub.com\u002Fo2scale","2026-03-19 22:31:27",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add o2scale\u002FOpenMotion --skill remotion-best-practices",{"tool":55,"command":56},"bunx","bunx skills add o2scale\u002FOpenMotion --skill remotion-best-practices",{"tool":58,"command":59},"pnpm","pnpm dlx skills add o2scale\u002FOpenMotion --skill remotion-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002FSKILL.md",true,[63,69,73,77,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"rules\u002F3d.md","REFERENCE","参考文档",2292,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002F3d.md",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"rules\u002Fanimations.md",778,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fanimations.md",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"rules\u002Fassets.md",1604,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fassets.md",{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"rules\u002Fassets\u002Fcharts-bar-chart.tsx","OTHER","其他",3429,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fassets\u002Fcharts-bar-chart.tsx",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"rules\u002Fassets\u002Ftext-animations-typewriter.tsx",2183,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fassets\u002Ftext-animations-typewriter.tsx",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"rules\u002Fassets\u002Ftext-animations-word-highlight.tsx",2380,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fassets\u002Ftext-animations-word-highlight.tsx",{"path":92,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":93,"sourceHtmlUrl":94},"rules\u002Faudio-visualization.md",4892,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Faudio-visualization.md",{"path":96,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":97,"sourceHtmlUrl":98},"rules\u002Faudio.md",3625,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Faudio.md",{"path":100,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":101,"sourceHtmlUrl":102},"rules\u002Fcalculate-metadata.md",3227,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fcalculate-metadata.md",{"path":104,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":105,"sourceHtmlUrl":106},"rules\u002Fcan-decode.md",1587,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fcan-decode.md",{"path":108,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":109,"sourceHtmlUrl":110},"rules\u002Fcharts.md",2942,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fcharts.md",{"path":112,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":113,"sourceHtmlUrl":114},"rules\u002Fcompositions.md",3794,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fcompositions.md",{"path":116,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":117,"sourceHtmlUrl":118},"rules\u002Fdisplay-captions.md",5471,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fdisplay-captions.md",{"path":120,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":121,"sourceHtmlUrl":122},"rules\u002Fextract-frames.md",5499,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fextract-frames.md",{"path":124,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":125,"sourceHtmlUrl":126},"rules\u002Fffmpeg.md",998,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fffmpeg.md",{"path":128,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":129,"sourceHtmlUrl":130},"rules\u002Ffonts.md",3484,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Ffonts.md",{"path":132,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":133,"sourceHtmlUrl":134},"rules\u002Fget-audio-duration.md",1357,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fget-audio-duration.md",{"path":136,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":137,"sourceHtmlUrl":138},"rules\u002Fget-video-dimensions.md",1626,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fget-video-dimensions.md",{"path":140,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":141,"sourceHtmlUrl":142},"rules\u002Fget-video-duration.md",1377,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fget-video-duration.md",{"path":144,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":145,"sourceHtmlUrl":146},"rules\u002Fgifs.md",3707,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fgifs.md",{"path":148,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":149,"sourceHtmlUrl":150},"rules\u002Fimages.md",2791,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fimages.md",{"path":152,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":153,"sourceHtmlUrl":154},"rules\u002Fimport-srt-captions.md",2247,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fimport-srt-captions.md",{"path":156,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":157,"sourceHtmlUrl":158},"rules\u002Flight-leaks.md",2305,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Flight-leaks.md",{"path":160,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":161,"sourceHtmlUrl":162},"rules\u002Flottie.md",1796,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Flottie.md",{"path":164,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":165,"sourceHtmlUrl":166},"rules\u002Fmaps.md",11300,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fmaps.md",{"path":168,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":169,"sourceHtmlUrl":170},"rules\u002Fmeasuring-dom-nodes.md",973,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fmeasuring-dom-nodes.md",{"path":172,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":173,"sourceHtmlUrl":174},"rules\u002Fmeasuring-text.md",2783,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fmeasuring-text.md",{"path":176,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":177,"sourceHtmlUrl":178},"rules\u002Fparameters.md",2387,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fparameters.md",{"path":180,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":181,"sourceHtmlUrl":182},"rules\u002Fsequencing.md",2746,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fsequencing.md",{"path":184,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":185,"sourceHtmlUrl":186},"rules\u002Fsfx.md",706,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fsfx.md",{"path":188,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":189,"sourceHtmlUrl":190},"rules\u002Fsubtitles.md",922,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fsubtitles.md",{"path":192,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":193,"sourceHtmlUrl":194},"rules\u002Ftailwind.md",420,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Ftailwind.md",{"path":196,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":197,"sourceHtmlUrl":198},"rules\u002Ftext-animations.md",700,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Ftext-animations.md",{"path":200,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":201,"sourceHtmlUrl":202},"rules\u002Ftiming.md",3961,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Ftiming.md",{"path":204,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":205,"sourceHtmlUrl":206},"rules\u002Ftranscribe-captions.md",1897,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Ftranscribe-captions.md",{"path":208,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":209,"sourceHtmlUrl":210},"rules\u002Ftransitions.md",5816,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Ftransitions.md",{"path":212,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":213,"sourceHtmlUrl":214},"rules\u002Ftransparent-videos.md",2267,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Ftransparent-videos.md",{"path":216,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":217,"sourceHtmlUrl":218},"rules\u002Ftrimming.md",1209,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Ftrimming.md",{"path":220,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":221,"sourceHtmlUrl":222},"rules\u002Fvideos.md",3509,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fvideos.md",{"path":224,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":225,"sourceHtmlUrl":226},"rules\u002Fvoiceover.md",3272,"https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002Fskills\u002Fremotion-best-practices\u002Frules\u002Fvoiceover.md",[228,251,272,294,308,329],{"skillNo":229,"name":230,"nameZh":6,"description":231,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":232,"categories":233,"keywords":237,"publishedAt":36},"01M6GND70JJJ5Y9T4CRQN5QBZV","wds-agent-saga-analyst","Strategic business analyst and product discovery partner for WDS. Use when the user asks to talk to Saga or requests the WDS analyst.","https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002F_bmad\u002Fwds\u002Fagents\u002Fwds-agent-saga-analyst\u002FSKILL.md",[234],{"categoryNo":235,"categoryName":236,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[238,239,240,241,242,243,244,245,246,247,248,249,250],"wds agent saga analyst","saga","analyst","discovery","requests","partner","strategic","use","business","product discovery","user","Business Analyst","product",{"skillNo":252,"name":253,"nameZh":6,"description":254,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":255,"categories":256,"keywords":263,"publishedAt":36},"01M6GND31HT4EB4PQ9FH9JZMTS","wds-agent-freya-ux","Strategic UX designer and design thinking partner for WDS. Use when the user asks to talk to Freya or requests the WDS designer.","https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002F_bmad\u002Fwds\u002Fagents\u002Fwds-agent-freya-ux\u002FSKILL.md",[257,258],{"categoryNo":235,"categoryName":236,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":259,"categoryName":260,"taxonomyType":261,"taxonomyTypeDesc":262},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[264,265,266,267,248,268,245,242,269,243,244,270,271],"wds agent freya ux","ux","design","UX Designer","designer","design thinking","thinking","thinking partner",{"skillNo":273,"name":274,"nameZh":6,"description":275,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":276,"categories":277,"keywords":278,"publishedAt":36},"01M6GNCYWEBZJY9XCB2ZDVA2EA","bmad-testarch-trace","Generate traceability matrix and quality gate decision. Use when the user says \"lets create traceability matrix\" or \"I want to analyze test coverage\"","https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002F_bmad\u002Ftea\u002Fworkflows\u002Ftestarch\u002Fbmad-testarch-trace\u002FSKILL.md",[],[279,280,281,282,283,284,285,286,245,287,288,289,290,291,292,248,293],"bmad testarch","trace","bmad","bmad testarch trace","test coverage","traceability","gate","create","test","quality gate","generate","analyze","quality","decision","coverage",{"skillNo":295,"name":296,"nameZh":6,"description":297,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":298,"categories":299,"keywords":303,"publishedAt":36},"01M6GNCV72SX83XK5R94VFWR6A","bmad-testarch-test-review","Review test quality using best practices validation. Use when user says \"lets review tests\" or \"I want to evaluate test quality\"","https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002F_bmad\u002Ftea\u002Fworkflows\u002Ftestarch\u002Fbmad-testarch-test-review\u002FSKILL.md",[300],{"categoryNo":301,"categoryName":302,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[304,281,279,305,287,27,306,291,248,245,307],"bmad testarch test review","review","validation","tests",{"skillNo":309,"name":310,"nameZh":6,"description":311,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":312,"categories":313,"keywords":319,"publishedAt":36},"01M6GNCPN0NKSJD6C7NXR3HGSA","bmad-testarch-test-design","Create system-level or epic-level test plans. Use when the user says \"lets design test plan\" or \"I want to create test strategy\"","https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002F_bmad\u002Ftea\u002Fworkflows\u002Ftestarch\u002Fbmad-testarch-test-design\u002FSKILL.md",[314,315,318],{"categoryNo":301,"categoryName":302,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":316,"categoryName":317,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":259,"categoryName":260,"taxonomyType":261,"taxonomyTypeDesc":262},[279,281,320,321,287,266,286,322,323,245,248,324,325,326,327,328],"bmad testarch test design","test design","plans","test strategy","strategy","system","plan","test plan","EPIC",{"skillNo":330,"name":331,"nameZh":6,"description":332,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":333,"categories":334,"keywords":335,"publishedAt":36},"01M6GNCGXP2TH1NMPWFBBV5Q8Y","bmad-testarch-nfr","Assess NFRs like performance security and reliability. Use when the user says \"lets assess NFRs\" or \"I want to evaluate non-functional requirements\"","https:\u002F\u002Fgithub.com\u002Fo2scale\u002FOpenMotion\u002Fblob\u002Fmain\u002F_bmad\u002Ftea\u002Fworkflows\u002Ftestarch\u002Fbmad-testarch-nfr\u002FSKILL.md",[],[279,281,336,337,338,339,340,245,248,341,342],"bmad testarch nfr","functional","assess","requirements","reliability","performance","security"]