[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KSSXCZXAQPSAFJAZFPVRXA":3,"skill-same:01M6KSSXCZXAQPSAFJAZFPVRXA":215},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":13,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":61,"install":62,"resources":75},"01M6KSSXCZXAQPSAFJAZFPVRXA","ck:ai-multimodal",null,"Analyze images\u002Faudio\u002Fvideo with Gemini API (better vision than Claude). Generate images (Imagen 4, Nano Banana 2, MiniMax), videos (Veo 3, Hailuo), speech (MiniMax TTS), music (MiniMax). Use for vision analysis, transcription, OCR, design extraction, multimodal AI.","devmotminh\u002Fplayscored","devmotminh","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F133726659?v=4","01M6KSRTWXJ4EW9RPFDYZQ0MYH","01M6KSRV19QN8MN1MNQHNE46JS",0,"MIT","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"ck","multimodal","ck:ai multimodal","ai multimodal","read","minimax tts","nano banana 2","banana","images","edit","write","design","analyze","Bash","Audio","Video","api","analysis","ocr","generate","2026-11-10 10:12:30",false,"---\nname: ck:ai-multimodal\ndescription: Analyze images\u002Faudio\u002Fvideo with Gemini API (better vision than Claude). Generate images (Imagen 4, Nano Banana 2, MiniMax), videos (Veo 3, Hailuo), speech (MiniMax TTS), music (MiniMax). Use for vision analysis, transcription, OCR, design extraction, multimodal AI.\nlicense: MIT\nallowed-tools:\n  - Bash\n  - Read\n  - Write\n  - Edit\nargument-hint: \"[file-path] [prompt]\"\n---\n\n# AI Multimodal\n\nProcess audio, images, videos, documents using Gemini. Generate images, videos, speech, music via Gemini + MiniMax.\n\n## Setup\n\n```bash\n# Google Gemini (analysis + image\u002Fvideo gen)\nexport GEMINI_API_KEY=\"your-key\"  # https:\u002F\u002Faistudio.google.com\u002Fapikey\n# MiniMax (image\u002Fvideo\u002Fspeech\u002Fmusic gen)\nexport MINIMAX_API_KEY=\"your-key\"  # https:\u002F\u002Fplatform.minimax.io\u002Fuser-center\u002Fbasic-information\u002Finterface-key\npip install google-genai python-dotenv pillow requests\n```\n\n### API Key Rotation (Optional)\n\nFor high-volume Gemini usage, configure multiple keys:\n\n```bash\nexport GEMINI_API_KEY=\"key1\"\nexport GEMINI_API_KEY_2=\"key2\"  # auto-rotates on rate limit\n```\n\n## Quick Start\n\n**Verify setup**: `python scripts\u002Fcheck_setup.py`\n**Analyze media**: `python scripts\u002Fgemini_batch_process.py --files \u003Cfile> --task \u003Canalyze|transcribe|extract>`\n  - TIP: When you're asked to analyze an image, check if `gemini` command is available, then use `echo \"\u003Cprompt to analyze image>\" | gemini -y -m \u003Cgemini.model>` command (read model from `$HOME\u002F.claude\u002F.ck.json`: `gemini.model`). If `gemini` command is not available, use `python scripts\u002Fgemini_batch_process.py --files \u003Cfile> --task analyze` command.\n**Generate (Gemini)**: `python scripts\u002Fgemini_batch_process.py --task \u003Cgenerate|generate-video> --prompt \"desc\"`\n**Generate (MiniMax)**: `python scripts\u002Fminimax_cli.py --task \u003Cgenerate|generate-video|generate-speech|generate-music> --prompt \"desc\"`\n\n> **Stdin support**: Pipe files via stdin for Gemini analysis (auto-detects PNG\u002FJPG\u002FPDF\u002FWAV\u002FMP3).\n\n## Models\n\n### Google Gemini \u002F Imagen\n- **Image gen**: `gemini-3.1-flash-image-preview` (Nano Banana 2 - DEFAULT), `gemini-2.5-flash-image` (Flash), `gemini-3-pro-image-preview` (Pro 4K), `imagen-4.0-generate-001` (standard), `imagen-4.0-ultra-generate-001` (quality), `imagen-4.0-fast-generate-001` (speed)\n- **Video gen**: `veo-3.1-generate-preview` (8s clips with audio)\n- **Analysis**: `gemini-2.5-flash` (recommended), `gemini-2.5-pro` (advanced)\n\n### MiniMax (NEW)\n- **Image gen**: `image-01` (standard), `image-01-live` (enhanced) - $0.03\u002Fimage, 1-9 batch\n- **Video gen (Hailuo)**: `MiniMax-Hailuo-2.3` (1080p), `MiniMax-Hailuo-2.3-Fast` (50% cheaper), `MiniMax-Hailuo-02` (first+last frame), `S2V-01` (subject ref)\n- **Speech\u002FTTS**: `speech-2.8-hd` (best), `speech-2.8-turbo` (fast) - 300+ voices, 40+ languages, emotion control\n- **Music**: `music-2.5` - 4-minute songs with vocals, synchronized lyrics\n\n## Scripts\n\n- **`gemini_batch_process.py`**: Gemini CLI for `transcribe|analyze|extract|generate|generate-video`. Auto-resolves API keys, Imagen 4 + Veo + Nano Banana workflows.\n- **`minimax_cli.py`**: MiniMax CLI for `generate|generate-video|generate-speech|generate-music`. Supports all MiniMax models.\n- **`minimax_generate.py`**: MiniMax generation functions (image, video, speech, music). Library for programmatic use.\n- **`minimax_api_client.py`**: MiniMax HTTP client, auth, async polling, file download utilities.\n- **`media_optimizer.py`**: ffmpeg\u002FPillow preflight: compress\u002Fresize\u002Fconvert media to stay within API limits.\n- **`document_converter.py`**: Gemini-powered PDF\u002Fimage\u002FOffice → markdown converter.\n- **`check_setup.py`**: Setup checker for API keys and dependencies.\n\nUse `--help` for options.\n\n## References\n\nLoad for detailed guidance:\n\n| Topic | File | Description |\n|-------|------|-------------|\n| Music | `references\u002Fmusic-generation.md` | Lyria RealTime API for background music generation, style prompts, real-time control, integration with video production. |\n| Audio | `references\u002Faudio-processing.md` | Audio formats and limits, transcription (timestamps, speakers, segments), non-speech analysis, File API vs inline input, TTS models, best practices, cost and token math, and concrete meeting\u002Fpodcast\u002Finterview recipes. |\n| Images | `references\u002Fvision-understanding.md` | Vision capabilities overview, supported formats and models, captioning\u002Fclassification\u002FVQA, detection and segmentation, OCR and document reading, multi-image workflows, structured JSON output, token costs, best practices, and common product\u002Fscreenshot\u002Fchart\u002Fscene use cases. |\n| Image Gen | `references\u002Fimage-generation.md` | Imagen 4 and Gemini image model overview, generate_images vs generate_content APIs, aspect ratios and costs, text\u002Fimage\u002Fboth modalities, editing and composition, style and quality control, safety settings, best practices, troubleshooting, and common marketing\u002Fconcept-art\u002FUI scenarios. |\n| Video | `references\u002Fvideo-analysis.md` | Video analysis capabilities and supported formats, model\u002Fcontext choices, local\u002Finline\u002FYouTube inputs, clipping and FPS control, multi-video comparison, temporal Q&A and scene detection, transcription with visual context, token and cost guidance, and optimization\u002Fbest-practice patterns. |\n| Video Gen | `references\u002Fvideo-generation.md` | Veo model matrix, text-to-video and image-to-video quick start, multi-reference and extension flows, camera and timing control, configuration (resolution, aspect, audio, safety), prompt design patterns, performance tips, limitations, troubleshooting, and cost estimates. |\n| MiniMax | `references\u002Fminimax-generation.md` | MiniMax image (image-01), video (Hailuo 2.3), speech (TTS 2.8), and music (2.5) generation APIs. Endpoints, models, parameters, async workflows, pricing, rate limits, voice library, and examples. |\n\n## Limits\n\n**Formats**: Audio (WAV\u002FMP3\u002FAAC, 9.5h), Images (PNG\u002FJPEG\u002FWEBP, 3.6k), Video (MP4\u002FMOV, 6h), PDF (1k pages)\n**Size**: 20MB inline, 2GB File API\n**Important:** \n- If you are going to generate a transcript of the audio, and the audio length is longer than 15 minutes, the transcript often gets truncated due to output token limits in the Gemini API response. To get the full transcript, you need to split the audio into smaller chunks (max 15 minutes per chunk) and transcribe each segment for a complete transcript.\n- If you are going to generate a transcript of the video and the video length is longer than 15 minutes, use ffmpeg to extract the audio from the video, truncate the audio to 15 minutes, transcribe all audio segments, and then combine the transcripts into a single transcript.\n**Transcription Output Requirements:**\n- Format: Markdown\n- Metadata: Duration, file size, generated date, description, file name, topics covered, etc.\n- Parts: from-to (e.g., 00:00-00:15), audio chunk name, transcript, status, etc.\n- Transcript format: \n  ```\n  [HH:MM:SS -> HH:MM:SS] transcript content\n  [HH:MM:SS -> HH:MM:SS] transcript content\n  ...\n  ```\n\n## Resources\n\n- [Gemini API Docs](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002F)\n- [Gemini Pricing](https:\u002F\u002Fai.google.dev\u002Fpricing)\n- [MiniMax API Docs](https:\u002F\u002Fplatform.minimax.io\u002Fdocs\u002Fapi-reference\u002Fapi-overview)\n- [MiniMax Pricing](https:\u002F\u002Fplatform.minimax.io\u002Fpricing)\n","# AI Multimodal\n\nProcess audio, images, videos, documents using Gemini. Generate images, videos, speech, music via Gemini + MiniMax.\n\n## Setup\n\n```bash\n# Google Gemini (analysis + image\u002Fvideo gen)\nexport GEMINI_API_KEY=\"your-key\"  # https:\u002F\u002Faistudio.google.com\u002Fapikey\n# MiniMax (image\u002Fvideo\u002Fspeech\u002Fmusic gen)\nexport MINIMAX_API_KEY=\"your-key\"  # https:\u002F\u002Fplatform.minimax.io\u002Fuser-center\u002Fbasic-information\u002Finterface-key\npip install google-genai python-dotenv pillow requests\n```\n\n### API Key Rotation (Optional)\n\nFor high-volume Gemini usage, configure multiple keys:\n\n```bash\nexport GEMINI_API_KEY=\"key1\"\nexport GEMINI_API_KEY_2=\"key2\"  # auto-rotates on rate limit\n```\n\n## Quick Start\n\n**Verify setup**: `python scripts\u002Fcheck_setup.py`\n**Analyze media**: `python scripts\u002Fgemini_batch_process.py --files \u003Cfile> --task \u003Canalyze|transcribe|extract>`\n  - TIP: When you're asked to analyze an image, check if `gemini` command is available, then use `echo \"\u003Cprompt to analyze image>\" | gemini -y -m \u003Cgemini.model>` command (read model from `$HOME\u002F.claude\u002F.ck.json`: `gemini.model`). If `gemini` command is not available, use `python scripts\u002Fgemini_batch_process.py --files \u003Cfile> --task analyze` command.\n**Generate (Gemini)**: `python scripts\u002Fgemini_batch_process.py --task \u003Cgenerate|generate-video> --prompt \"desc\"`\n**Generate (MiniMax)**: `python scripts\u002Fminimax_cli.py --task \u003Cgenerate|generate-video|generate-speech|generate-music> --prompt \"desc\"`\n\n> **Stdin support**: Pipe files via stdin for Gemini analysis (auto-detects PNG\u002FJPG\u002FPDF\u002FWAV\u002FMP3).\n\n## Models\n\n### Google Gemini \u002F Imagen\n- **Image gen**: `gemini-3.1-flash-image-preview` (Nano Banana 2 - DEFAULT), `gemini-2.5-flash-image` (Flash), `gemini-3-pro-image-preview` (Pro 4K), `imagen-4.0-generate-001` (standard), `imagen-4.0-ultra-generate-001` (quality), `imagen-4.0-fast-generate-001` (speed)\n- **Video gen**: `veo-3.1-generate-preview` (8s clips with audio)\n- **Analysis**: `gemini-2.5-flash` (recommended), `gemini-2.5-pro` (advanced)\n\n### MiniMax (NEW)\n- **Image gen**: `image-01` (standard), `image-01-live` (enhanced) - $0.03\u002Fimage, 1-9 batch\n- **Video gen (Hailuo)**: `MiniMax-Hailuo-2.3` (1080p), `MiniMax-Hailuo-2.3-Fast` (50% cheaper), `MiniMax-Hailuo-02` (first+last frame), `S2V-01` (subject ref)\n- **Speech\u002FTTS**: `speech-2.8-hd` (best), `speech-2.8-turbo` (fast) - 300+ voices, 40+ languages, emotion control\n- **Music**: `music-2.5` - 4-minute songs with vocals, synchronized lyrics\n\n## Scripts\n\n- **`gemini_batch_process.py`**: Gemini CLI for `transcribe|analyze|extract|generate|generate-video`. Auto-resolves API keys, Imagen 4 + Veo + Nano Banana workflows.\n- **`minimax_cli.py`**: MiniMax CLI for `generate|generate-video|generate-speech|generate-music`. Supports all MiniMax models.\n- **`minimax_generate.py`**: MiniMax generation functions (image, video, speech, music). Library for programmatic use.\n- **`minimax_api_client.py`**: MiniMax HTTP client, auth, async polling, file download utilities.\n- **`media_optimizer.py`**: ffmpeg\u002FPillow preflight: compress\u002Fresize\u002Fconvert media to stay within API limits.\n- **`document_converter.py`**: Gemini-powered PDF\u002Fimage\u002FOffice → markdown converter.\n- **`check_setup.py`**: Setup checker for API keys and dependencies.\n\nUse `--help` for options.\n\n## References\n\nLoad for detailed guidance:\n\n| Topic | File | Description |\n|-------|------|-------------|\n| Music | `references\u002Fmusic-generation.md` | Lyria RealTime API for background music generation, style prompts, real-time control, integration with video production. |\n| Audio | `references\u002Faudio-processing.md` | Audio formats and limits, transcription (timestamps, speakers, segments), non-speech analysis, File API vs inline input, TTS models, best practices, cost and token math, and concrete meeting\u002Fpodcast\u002Finterview recipes. |\n| Images | `references\u002Fvision-understanding.md` | Vision capabilities overview, supported formats and models, captioning\u002Fclassification\u002FVQA, detection and segmentation, OCR and document reading, multi-image workflows, structured JSON output, token costs, best practices, and common product\u002Fscreenshot\u002Fchart\u002Fscene use cases. |\n| Image Gen | `references\u002Fimage-generation.md` | Imagen 4 and Gemini image model overview, generate_images vs generate_content APIs, aspect ratios and costs, text\u002Fimage\u002Fboth modalities, editing and composition, style and quality control, safety settings, best practices, troubleshooting, and common marketing\u002Fconcept-art\u002FUI scenarios. |\n| Video | `references\u002Fvideo-analysis.md` | Video analysis capabilities and supported formats, model\u002Fcontext choices, local\u002Finline\u002FYouTube inputs, clipping and FPS control, multi-video comparison, temporal Q&A and scene detection, transcription with visual context, token and cost guidance, and optimization\u002Fbest-practice patterns. |\n| Video Gen | `references\u002Fvideo-generation.md` | Veo model matrix, text-to-video and image-to-video quick start, multi-reference and extension flows, camera and timing control, configuration (resolution, aspect, audio, safety), prompt design patterns, performance tips, limitations, troubleshooting, and cost estimates. |\n| MiniMax | `references\u002Fminimax-generation.md` | MiniMax image (image-01), video (Hailuo 2.3), speech (TTS 2.8), and music (2.5) generation APIs. Endpoints, models, parameters, async workflows, pricing, rate limits, voice library, and examples. |\n\n## Limits\n\n**Formats**: Audio (WAV\u002FMP3\u002FAAC, 9.5h), Images (PNG\u002FJPEG\u002FWEBP, 3.6k), Video (MP4\u002FMOV, 6h), PDF (1k pages)\n**Size**: 20MB inline, 2GB File API\n**Important:** \n- If you are going to generate a transcript of the audio, and the audio length is longer than 15 minutes, the transcript often gets truncated due to output token limits in the Gemini API response. To get the full transcript, you need to split the audio into smaller chunks (max 15 minutes per chunk) and transcribe each segment for a complete transcript.\n- If you are going to generate a transcript of the video and the video length is longer than 15 minutes, use ffmpeg to extract the audio from the video, truncate the audio to 15 minutes, transcribe all audio segments, and then combine the transcripts into a single transcript.\n**Transcription Output Requirements:**\n- Format: Markdown\n- Metadata: Duration, file size, generated date, description, file name, topics covered, etc.\n- Parts: from-to (e.g., 00:00-00:15), audio chunk name, transcript, status, etc.\n- Transcript format: \n  ```\n  [HH:MM:SS -> HH:MM:SS] transcript content\n  [HH:MM:SS -> HH:MM:SS] transcript content\n  ...\n  ```\n\n## Resources\n\n- [Gemini API Docs](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002F)\n- [Gemini Pricing](https:\u002F\u002Fai.google.dev\u002Fpricing)\n- [MiniMax API Docs](https:\u002F\u002Fplatform.minimax.io\u002Fdocs\u002Fapi-reference\u002Fapi-overview)\n- [MiniMax Pricing](https:\u002F\u002Fplatform.minimax.io\u002Fpricing)\n",{"name":5,"license":14,"description":7,"allowed-tools":51,"argument-hint":55},[39,52,53,54],"Read","Write","Edit","[file-path] [prompt]","main","fa3098ef56c24a44b365d9f1727c4c86b98dfd20",".claude\u002Fskills\u002Fai-multimodal","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored","https:\u002F\u002Fgithub.com\u002Fdevmotminh","2026-05-04 12:54:25",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add devmotminh\u002Fplayscored --skill \"ck:ai-multimodal\"",{"tool":68,"command":69},"bunx","bunx skills add devmotminh\u002Fplayscored --skill \"ck:ai-multimodal\"",{"tool":71,"command":72},"pnpm","pnpm dlx skills add devmotminh\u002Fplayscored --skill \"ck:ai-multimodal\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002FSKILL.md",true,[76,82,88,92,96,100,104,108,112,116,122,126,130,134,138,142,146,152,156,160,164,168,172,176,180,184,187,191,195,199,203,207,211],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},".env.example","OTHER","其他",9371,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002F.env.example",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"assets\u002Fdemo-gemini-3.1-flash-images\u002Fcyberpunk-cat.png","ASSET","资产文件",2148094,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fassets\u002Fdemo-gemini-3.1-flash-images\u002Fcyberpunk-cat.png",{"path":89,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":90,"sourceHtmlUrl":91},"assets\u002Fdemo-gemini-3.1-flash-images\u002Ffloating-library.png",1997161,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fassets\u002Fdemo-gemini-3.1-flash-images\u002Ffloating-library.png",{"path":93,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":94,"sourceHtmlUrl":95},"assets\u002Fdemo-gemini-3.1-flash-images\u002Fsteampunk-barista.png",2080647,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fassets\u002Fdemo-gemini-3.1-flash-images\u002Fsteampunk-barista.png",{"path":97,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":98,"sourceHtmlUrl":99},"assets\u002Fdemo-minimax\u002Fminimax-kitsune.png",384656,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fassets\u002Fdemo-minimax\u002Fminimax-kitsune.png",{"path":101,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":102,"sourceHtmlUrl":103},"assets\u002Fdemo-minimax\u002Fminimax-music-midnight-glow.mp3",2391374,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fassets\u002Fdemo-minimax\u002Fminimax-music-midnight-glow.mp3",{"path":105,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":106,"sourceHtmlUrl":107},"assets\u002Fdemo-minimax\u002Fminimax-speech-demo.mp3",254304,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fassets\u002Fdemo-minimax\u002Fminimax-speech-demo.mp3",{"path":109,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":110,"sourceHtmlUrl":111},"assets\u002Fdemo-minimax\u002Fminimax-speech-vietnamese.mp3",248539,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fassets\u002Fdemo-minimax\u002Fminimax-speech-vietnamese.mp3",{"path":113,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":114,"sourceHtmlUrl":115},"assets\u002Fdemo-minimax\u002Fminimax-video-kitsune.mp4",3555132,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fassets\u002Fdemo-minimax\u002Fminimax-video-kitsune.mp4",{"path":117,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":120,"sourceHtmlUrl":121},"references\u002Faudio-processing.md","REFERENCE","参考文档",10122,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Freferences\u002Faudio-processing.md",{"path":123,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":124,"sourceHtmlUrl":125},"references\u002Fimage-generation.md",29764,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Freferences\u002Fimage-generation.md",{"path":127,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":128,"sourceHtmlUrl":129},"references\u002Fminimax-generation.md",4289,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Freferences\u002Fminimax-generation.md",{"path":131,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":132,"sourceHtmlUrl":133},"references\u002Fmusic-generation.md",9007,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Freferences\u002Fmusic-generation.md",{"path":135,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":136,"sourceHtmlUrl":137},"references\u002Fvideo-analysis.md",11916,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Freferences\u002Fvideo-analysis.md",{"path":139,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":140,"sourceHtmlUrl":141},"references\u002Fvideo-generation.md",11094,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Freferences\u002Fvideo-generation.md",{"path":143,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":144,"sourceHtmlUrl":145},"references\u002Fvision-understanding.md",11040,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Freferences\u002Fvision-understanding.md",{"path":147,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":150,"sourceHtmlUrl":151},"scripts\u002F.coverage","SCRIPT","脚本",53248,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002F.coverage",{"path":153,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":154,"sourceHtmlUrl":155},"scripts\u002Fcheck_setup.py",9793,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Fcheck_setup.py",{"path":157,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":158,"sourceHtmlUrl":159},"scripts\u002Fdocument_converter.py",12487,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Fdocument_converter.py",{"path":161,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":162,"sourceHtmlUrl":163},"scripts\u002Fgemini_batch_process.py",43852,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Fgemini_batch_process.py",{"path":165,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":166,"sourceHtmlUrl":167},"scripts\u002Fmedia_optimizer.py",16467,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Fmedia_optimizer.py",{"path":169,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":170,"sourceHtmlUrl":171},"scripts\u002Fminimax_api_client.py",5991,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Fminimax_api_client.py",{"path":173,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":174,"sourceHtmlUrl":175},"scripts\u002Fminimax_cli.py",7198,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Fminimax_cli.py",{"path":177,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":178,"sourceHtmlUrl":179},"scripts\u002Fminimax_generate.py",8915,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Fminimax_generate.py",{"path":181,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":182,"sourceHtmlUrl":183},"scripts\u002Frequirements.txt",442,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Frequirements.txt",{"path":185,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":150,"sourceHtmlUrl":186},"scripts\u002Ftests\u002F.coverage","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Ftests\u002F.coverage",{"path":188,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":189,"sourceHtmlUrl":190},"scripts\u002Ftests\u002Frequirements.txt",352,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Ftests\u002Frequirements.txt",{"path":192,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":193,"sourceHtmlUrl":194},"scripts\u002Ftests\u002Ftest_document_converter.py",2229,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Ftests\u002Ftest_document_converter.py",{"path":196,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":197,"sourceHtmlUrl":198},"scripts\u002Ftests\u002Ftest_gemini_batch_process.py",12677,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Ftests\u002Ftest_gemini_batch_process.py",{"path":200,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":201,"sourceHtmlUrl":202},"scripts\u002Ftests\u002Ftest_media_optimizer.py",11824,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Ftests\u002Ftest_media_optimizer.py",{"path":204,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":205,"sourceHtmlUrl":206},"scripts\u002Ftests\u002Ftest_minimax_api_client.py",8252,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Ftests\u002Ftest_minimax_api_client.py",{"path":208,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":209,"sourceHtmlUrl":210},"scripts\u002Ftests\u002Ftest_minimax_cli.py",7726,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Ftests\u002Ftest_minimax_cli.py",{"path":212,"resourceType":148,"resourceTypeDesc":149,"sizeBytes":213,"sourceHtmlUrl":214},"scripts\u002Ftests\u002Ftest_minimax_generate.py",14121,"https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fai-multimodal\u002Fscripts\u002Ftests\u002Ftest_minimax_generate.py",[216,248,274,298,320,344],{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":230,"publishedAt":46},"01M6KTQ1G3XCP03TVWRW3ZC12B","ckm:youtube-thumbnail-design","Design YouTube thumbnails with 17 styles, niche-specific guides, and CTR optimization. Generate complete thumbnails with text using Gemini Nano Banana Pro (4K text rendering). Actions: design, create, generate thumbnail. Niches: tech, gaming, education, cooking, fitness, business. Styles: facecam, before-after, listicle, diagram, whiteboard, bold-text, mystery, dark-dramatic. Features: AI generation with text baked in, brand identity, reference face, arrows, Google Font support.","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fyoutube-thumbnail-design\u002FSKILL.md",[222,225],{"categoryNo":223,"categoryName":224,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":226,"categoryName":227,"taxonomyType":228,"taxonomyTypeDesc":229},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[37,231,232,233,234,235,236,237,45,238,239,240,241,242,33,243,244,245,246,247],"youtube","thumbnail","ckm","ckm:youtube thumbnail design","ckm:youtube","diagram","create","nano banana pro","actions","text","thumbnails","before-after","ctr","niches","niche","guides","whiteboard",{"skillNo":249,"name":250,"nameZh":6,"description":251,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":252,"categories":253,"keywords":254,"publishedAt":46},"01M6KTPMRWPGHSCT8AAPDHKSZ1","ck:web-frameworks","Build modern full-stack web applications with Next.js (App Router, Server Components, RSC, PPR, SSR, SSG, ISR), Turborepo (monorepo management, task pipelines, remote caching, parallel execution), and RemixIcon (3100+ SVG icons in outlined\u002Ffilled styles). Use when creating React applications, implementing server-side rendering, setting up monorepos with multiple packages, optimizing build performance and caching strategies, adding icon libraries, managing shared dependencies, or working with TypeScript full-stack projects.","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fweb-frameworks\u002FSKILL.md",[],[255,256,257,258,26,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273],"web","web frameworks","frameworks","ck:web frameworks","performance","components","react","libraries","projects","monorepo","router","up","caching","strategies","shared","app","remote","Server Components","implementing",{"skillNo":275,"name":276,"nameZh":6,"description":277,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":278,"categories":279,"keywords":282,"publishedAt":46},"01M6KTNK7R4AD3ZDHE4WXCSTQ1","ck:ui-styling","Create beautiful, accessible user interfaces with shadcn\u002Fui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs. Use when building user interfaces, implementing design systems, creating responsive layouts, adding accessible components (dialogs, dropdowns, forms, tables), customizing themes and colors, implementing dark mode, generating visual designs and posters, or establishing consistent styling patterns across applications.","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002FSKILL.md",[280,281],{"categoryNo":223,"categoryName":224,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":226,"categoryName":227,"taxonomyType":228,"taxonomyTypeDesc":229},[283,284,285,286,26,37,287,288,260,289,237,290,291,292,293,294,295,296,297,273],"ui styling","ui","styling","ck:ui styling","css","canvas","component","design systems","Tailwind","forms","across","layout","themes","utility","mode",{"skillNo":299,"name":300,"nameZh":6,"description":301,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":302,"categories":303,"keywords":305,"publishedAt":46},"01M6KTND8TD6D7C273Q99VVQNQ","ck:threejs","Build 3D web apps with Three.js (WebGL\u002FWebGPU). 556 searchable examples, 60 API classes, 20 use cases. Actions: create 3D scene, load model, add animation, implement physics, build VR\u002FXR. Topics: GLTF loader, PBR materials, particle effects, shadows, post-processing, compute shaders, TSL. Integrations: WebGPU, physics engines, spatial audio.","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fthreejs\u002FSKILL.md",[304],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[306,300,26,307,237,308,239,42,309,310,40,311,312,313,314,315,316,317,318,319],"threejs","webgpu","shaders","Animation","3D","model","integrations","physics","apps","add","processing","post-processing","vr","effects",{"skillNo":321,"name":322,"nameZh":6,"description":323,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":324,"categories":325,"keywords":326,"publishedAt":46},"01M6KTM3HB7WWZRW64HH35G6TN","ck:sequential-thinking","Apply structured, reflective problem-solving for complex tasks requiring multi-step analysis, revision capability, and hypothesis verification. Use for complex problem decomposition, adaptive planning, analysis needing course correction, problems with unclear scope, multi-step solutions, and hypothesis-driven work.","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fsequential-thinking\u002FSKILL.md",[],[327,328,329,26,330,331,332,43,38,333,334,335,336,337,338,339,340,341,342,343],"sequential thinking","thinking","ck:sequential thinking","tasks","planning","verification","work","use","problem-solving","scope","problem","multi","with","course","for","adaptive","apply",{"skillNo":345,"name":346,"nameZh":6,"description":347,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":348,"categories":349,"keywords":350,"publishedAt":46},"01M6KTJ0QCSSY0ZGEKP99W3HKQ","ck:payment-integration","Integrate payments with SePay (VietQR), Polar (SaaS subscriptions), Stripe (global payments). Use for checkout, webhooks, QR codes, subscriptions, currency conversion, multi-provider order management, commission systems.","https:\u002F\u002Fgithub.com\u002Fdevmotminh\u002Fplayscored\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fpayment-integration\u002FSKILL.md",[],[351,352,353,354,26,355,356,334,357,358,359,360,361,362,363,338,339,364,341,365],"integration","payment integration","payment","ck:payment integration","payments","saas","conversion","provider","subscriptions","task","currency","checkout","codes","qr","order management"]