[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DECJC2YYX32SAJRMR5H20A":3,"skill-same:01M6DECJC2YYX32SAJRMR5H20A":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":18,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6DECJC2YYX32SAJRMR5H20A","vrchat-hakua-slideshow",null,"VRChat screenshots and hakua TTS into a narrated slideshow MP4 for intros or social posts.","zapabob\u002FSkills","zapabob","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F130830376?v=4","01M6DBMYZAGRTFQDSQYW3W764P","峯岸 亮","01M6DBMZ3GKDSJ01NZ9XTZD7JD",2,"MIT","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F3a\u002F3a7c0e403ba9d73de4f092edca80b2caadfd03d1307aec7a4af65c419ced15e1\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"vrchat","Hakua","vrchat hakua slideshow","macos","screenshots","linux","windows","Video","Media","tts","mp4","hermes","hermes agent","social","2026-11-10 10:12:30",false,"---\r\nname: vrchat-hakua-slideshow\r\ndescription: VRChat screenshots and hakua TTS into a narrated slideshow MP4 for intros or social posts.\r\nversion: 1.0.0\r\nauthor: Hermes Agent\r\nlicense: MIT\r\nplatforms: [windows, macos, linux]\r\nmetadata:\r\n  hermes:\r\n    tags: [vrchat, tts, video, media, hakua]\r\n    category: media\r\n---\r\n\r\n# VRChat Hakua Memory Slideshow\r\n\r\nVRChatスクリーンショットとはくあの声でHermes-agent機能を紹介するスライドショーMP4を作成するスキル。\r\n\r\n## When to Use\r\n\r\n- 新機能やアップデートをVRChat写真＋はくあの声で紹介したい時\r\n- Hermes-agentの記憶統合・Ebbinghaus機能を視覚的に説明したい時\r\n- X\u002FTwitterやDiscordに投稿する紹介動画が必要な時\r\n\r\n## Prerequisites\r\n\r\n- irodori-TTS（`irodori_tts_synthesize`）が利用可能\r\n- VRChat screenshotsが `~\u002FPictures\u002FVRChat\u002F` に存在\r\n- ffmpegがインストール済み（パス通っている）\r\n- 縦長1920×1080のVRChat画像を推奨\r\n\r\n## How to Run\r\n\r\n### 1. 素材確認\r\n\r\n最新VRChatショットを確認：\r\n```bash\r\npy -3 -c \"import glob, os; files=sorted(glob.glob(os.path.expanduser('~\u002FPictures\u002FVRChat\u002F**\u002F*.png'), recursive=True)); print(files[-1])\"\r\n```\r\n\r\n### 2. ナレーション生成\r\n\r\n`text_to_speech` で各セクションの音声を生成：\r\n\r\n- オープニング（3-8秒）\r\n- 機能説明1（8-12秒）\r\n- 機能説明2（8-12秒）\r\n- 設定方法（6-10秒）\r\n- クロージング（8-12秒）\r\n\r\n**重要**: `output_path` で `.wav` \u002F `.ogg` を指定（本体に残留させる）。\r\n\r\n### 3. 音声連結\r\n\r\n```python\r\nimport subprocess, os\r\n\r\naudios = [\"01.ogg\", \"02.ogg\", \"03.ogg\", \"04.ogg\", \"05.ogg\"]\r\nwith open(\"list.txt\", \"w\") as f:\r\n    for a in audios:\r\n        f.write(f\"file '{a}'\\n\")\r\n\r\nsubprocess.run([\r\n    \"ffmpeg\", \"-y\", \"-f\", \"concat\", \"-safe\", \"0\",\r\n    \"-i\", \"list.txt\", \"-c\", \"copy\",\r\n    \"combined.ogg\"\r\n], check=True)\r\n```\r\n\r\n### 4. 動画生成（ffmpegスライドショー）\r\n\r\n```python\r\nimport subprocess, os\r\n\r\nimages = [...]  # 画像パスのリスト（jpg化推奨）\r\ndurations = [7.8, 10.9, 11.7, 8.9, 10.2]  # 各音声の秒数\r\n\r\n# 各セグメント生成\r\nfor i, (img, dur) in enumerate(zip(images, durations), 1):\r\n    seg = f\"seg_{i:02d}.mp4\"\r\n    vf = f\"zoompan=z='min(1.12,1+0.12*on\u002F({dur}*30))':x='iw\u002F2-(iw\u002Fzoom\u002F2)':y='ih\u002F2-(ih\u002Fzoom\u002F2)':d=1:s=1080x1920:fps=30,format=yuv420p\"\r\n    subprocess.run([\r\n        \"ffmpeg\", \"-y\", \"-loop\", \"1\", \"-i\", img, \"-t\", str(dur),\r\n        \"-vf\", vf, \"-c:v\", \"libx264\", \"-pix_fmt\", \"yuv420p\",\r\n        \"-an\", seg\r\n    ], check=True)\r\n\r\n# 連結\r\nwith open(\"concat.txt\", \"w\") as f:\r\n    for seg in segments:\r\n        f.write(f\"file '{seg}'\\n\")\r\n\r\nsubprocess.run([\r\n    \"ffmpeg\", \"-y\", \"-f\", \"concat\", \"-safe\", \"0\",\r\n    \"-i\", \"concat.txt\", \"-i\", \"combined.ogg\",\r\n    \"-c:v\", \"copy\", \"-c:a\", \"aac\", \"-b:a\", \"192k\",\r\n    \"-shortest\", \"output.mp4\"\r\n], check=True)\r\n```\r\n\r\n## Quick Reference\r\n\r\n| ステップ | 内容 | 所要時間 |\r\n|---------|------|---------|\r\n| 素材確認 | 最新VRChat画像取得 | 5秒 |\r\n| 音声生成 | text_to_speech×N | 各3-5秒 |\r\n| 音声連結 | ffmpeg concat | 1秒 |\r\n| セグメント生成 | ffmpeg zoompan×N | 各8-20秒 |\r\n| 最終結合 | ffmpeg concat+aac | 3秒 |\r\n\r\n## Pitfalls\r\n\r\n- **Voice source:** `text_to_speech` and `irodori_tts_synthesize` can ignore the `tts.irodori.voice` config and return a non-Hakua voice even when the setup looks correct. For Hakua-voiced MP4s, use `aituber_onair_speak(provider=\"irodori\", voice=\"hakua\", play=false, output_path=\"\u003Cabsolute .wav>\")` as the canonical audio source. This is the only confirmed path that actually returns the Hakua voice profile in this environment.\r\n- **音声の`.wav`化**: 上記 canonical 呼び出しでも `output_path` の拡張子を `.wav` にすると実ファイルが得やすい。`.ogg` で `text_to_speech` を呼ぶと本体生成が不定になることがある。\r\n- **画像形式**: PNGのままでもffmpegは読めるが、jpg化してから使うと安定。\r\n- **音声長と画像表示時間**: 各セグメントの秒数は対応する音声の実際のDurationに合わせる（`ffmpeg -i audio.wav`で確認）。\r\n- **動画バックエンド**: `video_generate` はバックエンド未設定だと失敗するため、ffmpeg直接が確実。\r\n- **出力先**: `~\u002F.hermes\u002Fx_posts\u002F` で生成し、投稿前に `~\u002F.hermes\u002Flm-twitterer\u002Fmedia\u002F` へコピーする。lm-twittererはmedia dir配下しか受け付けない。\r\n- **lm-twitterer投稿**: `dry_run=true` でテキストとmedia acceptanceを確認してから `dry_run=false` で投稿する。\r\n\r\n## Voice intelligibility and duration control\r\n\r\n- ユーザーが「早口で不明瞭」と感じた場合は、まず `aituber_onair_speak(provider=\"irodori\", voice=\"hakua\", play=false, output_path=\"\u003Cabsolute .wav>\")` を正規経路として使い、発話速度を少し下げる。既存WAVを `atempo=0.84` で処理する方法は、ピッチを保ったまま迅速に改善版を作る代替手段。\r\n- ただし、単純にスロー化すると90秒制限を超える。90秒以内が要件なら、発話速度を元に戻すのではなく、`silenceremove` で長い無音区間だけを短縮する。実例では `stop_silence=0.08`、`stop_duration=0.22`、`-35dB` 閾値で、約107秒のスロー音声を約89.8秒へ収めた。\r\n- 音声だけでなく、最終MP4も必ず `ffprobe` で検証する。`-shortest` だけでは動画側のフレーム境界により音声より少し長くなることがあるため、厳密な上限がある場合は `-t 89.80` のように安全余裕を持って指定する。\r\n- 仕上がりの報告は、尺、速度調整、無音短縮の有無、解像度、音声形式を短く明示し、完成ファイルへのリンクを最優先する。ユーザーが聞き取りやすさを指摘した場合、長い手順説明より修正版を先に提示する。\r\n\r\n### 90秒以内の音声整形例\r\n\r\n```bash\r\n# 速度を落としたWAVを、無音の長い間だけ短縮\r\nffmpeg -y -i hakua-slow.wav \\\\\r\n  -af \"silenceremove=start_periods=1:start_duration=0.22:start_threshold=-35dB:stop_periods=-1:stop_duration=0.22:stop_threshold=-35dB:stop_silence=0.08\" \\\\\r\n  -ar 48000 -ac 1 hakua-90s.wav\r\n\r\n# 音声の実測値を確認してから映像と結合\r\nffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 hakua-90s.wav\r\nffmpeg -y -stream_loop -1 -i source-video.mp4 -i hakua-90s.wav \\\\\r\n  -map 0:v:0 -map 1:a:0 -c:v libx264 -crf 20 -pix_fmt yuv420p \\\\\r\n  -c:a aac -b:a 192k -t 89.80 -movflags +faststart output.mp4\r\n```\r\n\r\n## Verification\r\n\r\n```bash\r\n# 動画・音声ストリームと尺を確認\r\nffprobe -v error -show_entries format=duration:stream=codec_name,codec_type,sample_rate,channels,width,height -of default=nw=1 output.mp4\r\n\r\n# 厳密な尺の確認（90秒未満であること）\r\nffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 output.mp4\r\n```\r\n\r\n## Notes\r\n\r\n- VRChat写真は `~\u002FPictures\u002FVRChat\u002F` に日付フォルダで蓄積\r\n- はくあの声は `provider: \"irodori\"`, `voice: \"hakua\"` が標準\r\n- x投稿用MP4のテンプレートとして再利用可能\r\n","# VRChat Hakua Memory Slideshow\r\n\r\nVRChatスクリーンショットとはくあの声でHermes-agent機能を紹介するスライドショーMP4を作成するスキル。\r\n\r\n## When to Use\r\n\r\n- 新機能やアップデートをVRChat写真＋はくあの声で紹介したい時\r\n- Hermes-agentの記憶統合・Ebbinghaus機能を視覚的に説明したい時\r\n- X\u002FTwitterやDiscordに投稿する紹介動画が必要な時\r\n\r\n## Prerequisites\r\n\r\n- irodori-TTS（`irodori_tts_synthesize`）が利用可能\r\n- VRChat screenshotsが `~\u002FPictures\u002FVRChat\u002F` に存在\r\n- ffmpegがインストール済み（パス通っている）\r\n- 縦長1920×1080のVRChat画像を推奨\r\n\r\n## How to Run\r\n\r\n### 1. 素材確認\r\n\r\n最新VRChatショットを確認：\r\n```bash\r\npy -3 -c \"import glob, os; files=sorted(glob.glob(os.path.expanduser('~\u002FPictures\u002FVRChat\u002F**\u002F*.png'), recursive=True)); print(files[-1])\"\r\n```\r\n\r\n### 2. ナレーション生成\r\n\r\n`text_to_speech` で各セクションの音声を生成：\r\n\r\n- オープニング（3-8秒）\r\n- 機能説明1（8-12秒）\r\n- 機能説明2（8-12秒）\r\n- 設定方法（6-10秒）\r\n- クロージング（8-12秒）\r\n\r\n**重要**: `output_path` で `.wav` \u002F `.ogg` を指定（本体に残留させる）。\r\n\r\n### 3. 音声連結\r\n\r\n```python\r\nimport subprocess, os\r\n\r\naudios = [\"01.ogg\", \"02.ogg\", \"03.ogg\", \"04.ogg\", \"05.ogg\"]\r\nwith open(\"list.txt\", \"w\") as f:\r\n    for a in audios:\r\n        f.write(f\"file '{a}'\\n\")\r\n\r\nsubprocess.run([\r\n    \"ffmpeg\", \"-y\", \"-f\", \"concat\", \"-safe\", \"0\",\r\n    \"-i\", \"list.txt\", \"-c\", \"copy\",\r\n    \"combined.ogg\"\r\n], check=True)\r\n```\r\n\r\n### 4. 動画生成（ffmpegスライドショー）\r\n\r\n```python\r\nimport subprocess, os\r\n\r\nimages = [...]  # 画像パスのリスト（jpg化推奨）\r\ndurations = [7.8, 10.9, 11.7, 8.9, 10.2]  # 各音声の秒数\r\n\r\n# 各セグメント生成\r\nfor i, (img, dur) in enumerate(zip(images, durations), 1):\r\n    seg = f\"seg_{i:02d}.mp4\"\r\n    vf = f\"zoompan=z='min(1.12,1+0.12*on\u002F({dur}*30))':x='iw\u002F2-(iw\u002Fzoom\u002F2)':y='ih\u002F2-(ih\u002Fzoom\u002F2)':d=1:s=1080x1920:fps=30,format=yuv420p\"\r\n    subprocess.run([\r\n        \"ffmpeg\", \"-y\", \"-loop\", \"1\", \"-i\", img, \"-t\", str(dur),\r\n        \"-vf\", vf, \"-c:v\", \"libx264\", \"-pix_fmt\", \"yuv420p\",\r\n        \"-an\", seg\r\n    ], check=True)\r\n\r\n# 連結\r\nwith open(\"concat.txt\", \"w\") as f:\r\n    for seg in segments:\r\n        f.write(f\"file '{seg}'\\n\")\r\n\r\nsubprocess.run([\r\n    \"ffmpeg\", \"-y\", \"-f\", \"concat\", \"-safe\", \"0\",\r\n    \"-i\", \"concat.txt\", \"-i\", \"combined.ogg\",\r\n    \"-c:v\", \"copy\", \"-c:a\", \"aac\", \"-b:a\", \"192k\",\r\n    \"-shortest\", \"output.mp4\"\r\n], check=True)\r\n```\r\n\r\n## Quick Reference\r\n\r\n| ステップ | 内容 | 所要時間 |\r\n|---------|------|---------|\r\n| 素材確認 | 最新VRChat画像取得 | 5秒 |\r\n| 音声生成 | text_to_speech×N | 各3-5秒 |\r\n| 音声連結 | ffmpeg concat | 1秒 |\r\n| セグメント生成 | ffmpeg zoompan×N | 各8-20秒 |\r\n| 最終結合 | ffmpeg concat+aac | 3秒 |\r\n\r\n## Pitfalls\r\n\r\n- **Voice source:** `text_to_speech` and `irodori_tts_synthesize` can ignore the `tts.irodori.voice` config and return a non-Hakua voice even when the setup looks correct. For Hakua-voiced MP4s, use `aituber_onair_speak(provider=\"irodori\", voice=\"hakua\", play=false, output_path=\"\u003Cabsolute .wav>\")` as the canonical audio source. This is the only confirmed path that actually returns the Hakua voice profile in this environment.\r\n- **音声の`.wav`化**: 上記 canonical 呼び出しでも `output_path` の拡張子を `.wav` にすると実ファイルが得やすい。`.ogg` で `text_to_speech` を呼ぶと本体生成が不定になることがある。\r\n- **画像形式**: PNGのままでもffmpegは読めるが、jpg化してから使うと安定。\r\n- **音声長と画像表示時間**: 各セグメントの秒数は対応する音声の実際のDurationに合わせる（`ffmpeg -i audio.wav`で確認）。\r\n- **動画バックエンド**: `video_generate` はバックエンド未設定だと失敗するため、ffmpeg直接が確実。\r\n- **出力先**: `~\u002F.hermes\u002Fx_posts\u002F` で生成し、投稿前に `~\u002F.hermes\u002Flm-twitterer\u002Fmedia\u002F` へコピーする。lm-twittererはmedia dir配下しか受け付けない。\r\n- **lm-twitterer投稿**: `dry_run=true` でテキストとmedia acceptanceを確認してから `dry_run=false` で投稿する。\r\n\r\n## Voice intelligibility and duration control\r\n\r\n- ユーザーが「早口で不明瞭」と感じた場合は、まず `aituber_onair_speak(provider=\"irodori\", voice=\"hakua\", play=false, output_path=\"\u003Cabsolute .wav>\")` を正規経路として使い、発話速度を少し下げる。既存WAVを `atempo=0.84` で処理する方法は、ピッチを保ったまま迅速に改善版を作る代替手段。\r\n- ただし、単純にスロー化すると90秒制限を超える。90秒以内が要件なら、発話速度を元に戻すのではなく、`silenceremove` で長い無音区間だけを短縮する。実例では `stop_silence=0.08`、`stop_duration=0.22`、`-35dB` 閾値で、約107秒のスロー音声を約89.8秒へ収めた。\r\n- 音声だけでなく、最終MP4も必ず `ffprobe` で検証する。`-shortest` だけでは動画側のフレーム境界により音声より少し長くなることがあるため、厳密な上限がある場合は `-t 89.80` のように安全余裕を持って指定する。\r\n- 仕上がりの報告は、尺、速度調整、無音短縮の有無、解像度、音声形式を短く明示し、完成ファイルへのリンクを最優先する。ユーザーが聞き取りやすさを指摘した場合、長い手順説明より修正版を先に提示する。\r\n\r\n### 90秒以内の音声整形例\r\n\r\n```bash\r\n# 速度を落としたWAVを、無音の長い間だけ短縮\r\nffmpeg -y -i hakua-slow.wav \\\\\r\n  -af \"silenceremove=start_periods=1:start_duration=0.22:start_threshold=-35dB:stop_periods=-1:stop_duration=0.22:stop_threshold=-35dB:stop_silence=0.08\" \\\\\r\n  -ar 48000 -ac 1 hakua-90s.wav\r\n\r\n# 音声の実測値を確認してから映像と結合\r\nffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 hakua-90s.wav\r\nffmpeg -y -stream_loop -1 -i source-video.mp4 -i hakua-90s.wav \\\\\r\n  -map 0:v:0 -map 1:a:0 -c:v libx264 -crf 20 -pix_fmt yuv420p \\\\\r\n  -c:a aac -b:a 192k -t 89.80 -movflags +faststart output.mp4\r\n```\r\n\r\n## Verification\r\n\r\n```bash\r\n# 動画・音声ストリームと尺を確認\r\nffprobe -v error -show_entries format=duration:stream=codec_name,codec_type,sample_rate,channels,width,height -of default=nw=1 output.mp4\r\n\r\n# 厳密な尺の確認（90秒未満であること）\r\nffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 output.mp4\r\n```\r\n\r\n## Notes\r\n\r\n- VRChat写真は `~\u002FPictures\u002FVRChat\u002F` に日付フォルダで蓄積\r\n- はくあの声は `provider: \"irodori\"`, `voice: \"hakua\"` が標準\r\n- x投稿用MP4のテンプレートとして再利用可能\r\n",{"name":5,"author":38,"license":15,"version":39,"metadata":40,"platforms":46,"description":7},"Hermes Agent","1.0.0",{"hermes":41},{"tags":42,"category":44},[19,28,43,44,45],"video","media","hakua",[25,22,24],"main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002F3a\u002F3a7c0e403ba9d73de4f092edca80b2caadfd03d1307aec7a4af65c419ced15e1",0,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills","https:\u002F\u002Fgithub.com\u002Fzapabob","The Open University of JAPAN　2019-now\r\n\r\nTokyo University of Science　2007-2010","2026-10-26 16:29:01",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add zapabob\u002FSkills --skill vrchat-hakua-slideshow",{"tool":61,"command":62},"bunx","bunx skills add zapabob\u002FSkills --skill vrchat-hakua-slideshow",{"tool":64,"command":65},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill vrchat-hakua-slideshow","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F3a\u002F3a7c0e403ba9d73de4f092edca80b2caadfd03d1307aec7a4af65c419ced15e1\u002FSKILL.md",true,[69,75,79,83],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"checklist.md","REFERENCE","参考文档",14349,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fbmad-create-story\u002Fchecklist.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"discover-inputs.md",3911,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fbmad-create-story\u002Fdiscover-inputs.md",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"template.md",948,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fbmad-create-story\u002Ftemplate.md",{"path":84,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":85,"sourceHtmlUrl":86},"workflow.md",19932,"https:\u002F\u002Fgithub.com\u002Fdinesh-style\u002Fportfolio\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fbmad-create-story\u002Fworkflow.md",[88,119,154,181,208,225],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":107,"publishedAt":33},"01M6GJTE1GESGGF9K028Y7753E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fxurl\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[94,99,102],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":100,"categoryName":101,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[90,108,22,109,110,24,25,111,112,113,114,115,27,30,31,116,47,32,117,118],"openclaw","cli","github","official","search","https","social-media","api","twitter","via","post",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":136,"publishedAt":33},"01M6GJT8S1PXQ8WPXT1HSNBWH2","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwriting-plans\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[125,128,131,132,133],{"categoryNo":126,"categoryName":127,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":129,"categoryName":130,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":100,"categoryName":101,"taxonomyType":97,"taxonomyTypeDesc":98},{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":134,"categoryName":135,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000036","内容创作者",[137,138,139,140,22,141,24,142,25,143,144,145,146,147,148,149,150,151,152,153],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":163,"publishedAt":33},"01M6GJST0H5X7WHBJ3BZK0DVKH","whisper","OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwhisper\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[160],{"categoryNo":161,"categoryName":162,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000016","图像与多媒体",[156,22,24,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":190,"publishedAt":33},"01M6GJSMRQ8EETZTYMG72P70EA","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fweights-and-biases\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[187],{"categoryNo":188,"categoryName":189,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000013","分析与可视化",[191,22,192,193,25,194,195,196,197,198,199,171,200,201,202,203,204,205,206,207],"weights and biases","tensorflow","experiments","pytorch","visualization","registry","real-time","tuning","dashboards","experiment","log","time","Experiment Tracking","Model Registry","Hyperparameter Tuning","WandB","Real-Time Visualization",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":215,"publishedAt":33},"01M6GJS19KDPRY112JTR326S06","watchers","Poll RSS, JSON APIs, and GitHub with watermark dedup.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwatchers\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[214],{"categoryNo":100,"categoryName":101,"taxonomyType":97,"taxonomyTypeDesc":98},[210,22,216,110,24,217,218,219,220,221,222,30,31,223,224],"terminal","automation","http","monitoring","cron","json","rss","devops","with",{"skillNo":226,"name":227,"nameZh":6,"description":228,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":229,"categories":230,"keywords":233,"publishedAt":33},"01M6GJRHJD2A6Q830SWF9W48BC","serving-llms-vllm","vLLM: high-throughput LLM serving, OpenAI API, quantization.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fvllm\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[231,232],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},[234,235,236,24,237,164,238,239,240,167,241,115,242,243,244,245,246,247,248,249],"llms","vLLM","serving llms vllm","research","openai api","tensor","Inference Serving","Production","llm serving","High Throughput","PagedAttention","Continuous Batching","Quantization","Tensor Parallelism","high-throughput","throughput"]