[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EGPKBWKKTAT844HBQJFCF3":3,"skill-same:01M6EGPKBWKKTAT844HBQJFCF3":345},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M6EGPKBWKKTAT844HBQJFCF3","yt-dlp",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fyt-dlp\u002FSKILL.md",[],[18,19],"dlp","yt dlp","2026-11-10 10:12:30",false,"# yt-dlp\n\n## Overview\n\nDownload and extract media from YouTube and 1000+ other sites using yt-dlp — the actively maintained fork of youtube-dl. This skill covers audio extraction (MP3\u002FFLAC\u002FWAV), video download with quality selection, playlist handling, subtitle download, metadata extraction, thumbnail embedding, batch operations, channel archiving, and integration with processing pipelines (ffmpeg, whisper).\n\n## Instructions\n\n### Step 1: Installation\n\n```bash\n# pip (recommended)\npip install yt-dlp\n\n# Standalone binary\ncurl -L https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002Fyt-dlp\u002Freleases\u002Flatest\u002Fdownload\u002Fyt-dlp -o \u002Fusr\u002Flocal\u002Fbin\u002Fyt-dlp\nchmod +x \u002Fusr\u002Flocal\u002Fbin\u002Fyt-dlp\n\n# Update\nyt-dlp -U\n\n# Verify\nyt-dlp --version\n```\n\n**ffmpeg is required** for merging formats and audio conversion:\n```bash\napt install -y ffmpeg    # Ubuntu\u002FDebian\nbrew install ffmpeg      # macOS\n```\n\n### Step 2: Audio Extraction\n\n```bash\n# Download best audio, convert to MP3\nyt-dlp -x --audio-format mp3 \"https:\u002F\u002Fyoutube.com\u002Fwatch?v=VIDEO_ID\"\n\n# Best audio as FLAC (lossless)\nyt-dlp -x --audio-format flac \"URL\"\n\n# Best audio as WAV\nyt-dlp -x --audio-format wav \"URL\"\n\n# MP3 with specific quality (0=best, 9=worst)\nyt-dlp -x --audio-format mp3 --audio-quality 0 \"URL\"\n\n# Keep original format (no conversion)\nyt-dlp -x \"URL\"\n\n# Download audio + embed thumbnail as album art\nyt-dlp -x --audio-format mp3 --embed-thumbnail \"URL\"\n\n# Download audio + embed metadata (title, artist, etc.)\nyt-dlp -x --audio-format mp3 --embed-metadata --embed-thumbnail \"URL\"\n\n# Custom output filename\nyt-dlp -x --audio-format mp3 -o \"%(title)s.%(ext)s\" \"URL\"\nyt-dlp -x --audio-format mp3 -o \"%(uploader)s - %(title)s.%(ext)s\" \"URL\"\n```\n\n### Step 3: Video Download\n\n```bash\n# Best quality (video + audio merged)\nyt-dlp \"URL\"\n\n# List available formats\nyt-dlp -F \"URL\"\n# Output: ID  EXT  RESOLUTION  FPS  FILESIZE  CODEC  BITRATE\n\n# Download specific format by ID\nyt-dlp -f 137+140 \"URL\"    # 1080p video + best audio\n\n# Best video up to 1080p\nyt-dlp -f \"bestvideo[height\u003C=1080]+bestaudio\u002Fbest[height\u003C=1080]\" \"URL\"\n\n# Best video up to 720p, prefer MP4\nyt-dlp -f \"bestvideo[height\u003C=720][ext=mp4]+bestaudio[ext=m4a]\u002Fbest[height\u003C=720]\" \"URL\"\n\n# Only 4K if available\nyt-dlp -f \"bestvideo[height>=2160]+bestaudio\" \"URL\"\n\n# Smallest file\nyt-dlp -f \"worstvideo+worstaudio\u002Fworst\" \"URL\"\n\n# MP4 output (re-mux if needed)\nyt-dlp --merge-output-format mp4 \"URL\"\n```\n\n### Step 4: Playlists & Channels\n\n```bash\n# Download entire playlist\nyt-dlp \"https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLAYLIST_ID\"\n\n# Playlist: audio only\nyt-dlp -x --audio-format mp3 \"PLAYLIST_URL\"\n\n# Download specific items from playlist\nyt-dlp --playlist-start 5 --playlist-end 10 \"PLAYLIST_URL\"    # Items 5-10\nyt-dlp --playlist-items 1,3,5,7-10 \"PLAYLIST_URL\"             # Specific items\n\n# Download entire channel\nyt-dlp \"https:\u002F\u002Fyoutube.com\u002F@ChannelName\u002Fvideos\"\n\n# Download channel with organized folders\nyt-dlp -o \"%(uploader)s\u002F%(playlist)s\u002F%(title)s.%(ext)s\" \"CHANNEL_URL\"\n\n# Only videos from last 30 days\nyt-dlp --dateafter today-30days \"CHANNEL_URL\"\n\n# Skip already downloaded (archive file)\nyt-dlp --download-archive archive.txt \"PLAYLIST_URL\"\n# Subsequent runs skip already downloaded videos\n```\n\n### Step 5: Subtitles\n\n```bash\n# Download video + subtitles\nyt-dlp --write-sub --sub-lang en \"URL\"\n\n# Download auto-generated subtitles\nyt-dlp --write-auto-sub --sub-lang en \"URL\"\n\n# All available subtitles\nyt-dlp --write-sub --all-subs \"URL\"\n\n# Subtitles only (no video)\nyt-dlp --skip-download --write-sub --sub-lang en \"URL\"\n\n# Convert subtitles to SRT\nyt-dlp --write-sub --sub-lang en --convert-subs srt \"URL\"\n\n# Embed subtitles into video file\nyt-dlp --embed-subs --sub-lang en \"URL\"\n\n# List available subtitle languages\nyt-dlp --list-subs \"URL\"\n```\n\n### Step 6: Metadata & Information\n\n```bash\n# Print video info (no download)\nyt-dlp --dump-json \"URL\" | python3 -m json.tool\n\n# Extract specific fields\nyt-dlp --print \"%(title)s | %(duration)s | %(view_count)s\" \"URL\"\n\n# Get thumbnail URL\nyt-dlp --get-thumbnail \"URL\"\n\n# Download thumbnail only\nyt-dlp --skip-download --write-thumbnail \"URL\"\n\n# Download description\nyt-dlp --skip-download --write-description \"URL\"\n\n# Download comments\nyt-dlp --skip-download --write-comments \"URL\"\n\n# Get video info as JSON for a playlist\nyt-dlp --dump-json --flat-playlist \"PLAYLIST_URL\"\n```\n\n### Step 7: Output Templates\n\n```bash\n# Fields: title, uploader, upload_date, duration, view_count, ext, id, playlist_index, etc.\nyt-dlp -o \"%(uploader)s\u002F%(upload_date)s - %(title)s.%(ext)s\" \"URL\"\nyt-dlp -x --audio-format mp3 -o \"podcasts\u002F%(playlist)s\u002F%(playlist_index)03d - %(title)s.%(ext)s\" \"PLAYLIST_URL\"\nyt-dlp -o \"%(title).100B.%(ext)s\" \"URL\"    # Limit title to 100 bytes\n```\n\n### Step 8: Batch Operations\n\n```bash\n# Download from URL list, with archive tracking and rate limiting\nyt-dlp -a urls.txt -x --audio-format mp3\nyt-dlp -a urls.txt --download-archive done.txt -x --audio-format mp3\nyt-dlp --rate-limit 5M --sleep-interval 5 -a urls.txt\nyt-dlp -N 4 \"PLAYLIST_URL\"    # 4 concurrent downloads\n```\n\n### Step 9: Other Platforms\n\nyt-dlp supports 1000+ sites beyond YouTube. Use `yt-dlp --list-extractors` to see all:\n\n```bash\nyt-dlp \"https:\u002F\u002Ftwitter.com\u002Fuser\u002Fstatus\u002F123456789\"           # Twitter\u002FX\nyt-dlp \"https:\u002F\u002Fwww.instagram.com\u002Fp\u002FPOST_ID\u002F\"                # Instagram\nyt-dlp \"https:\u002F\u002Fwww.tiktok.com\u002F@user\u002Fvideo\u002F123456789\"        # TikTok\nyt-dlp \"https:\u002F\u002Fwww.twitch.tv\u002Fvideos\u002F123456789\"              # Twitch VODs\nyt-dlp \"https:\u002F\u002Fsoundcloud.com\u002Fartist\u002Ftrack-name\"            # SoundCloud\nyt-dlp \"https:\u002F\u002Fvimeo.com\u002F123456789\"                         # Vimeo\n```\n\n### Step 10: Pipeline Integration\n\n```bash\n# Download → extract audio → transcribe with Whisper\nyt-dlp -x --audio-format wav -o \"temp.%(ext)s\" \"URL\"\nwhisper temp.wav --model small --output_format srt\n\n# Download podcast → normalize → generate waveform\nyt-dlp -x --audio-format wav -o \"episode.%(ext)s\" \"URL\"\nsox episode.wav normalized.wav norm -1 highpass 80\naudiowaveform -i normalized.wav -o waveform.json --pixels-per-second 20\n```\n\n### Step 11: Configuration File\n\nSave defaults in `~\u002F.config\u002Fyt-dlp\u002Fconfig`:\n\n```\n-f bestvideo[height\u003C=1080][ext=mp4]+bestaudio[ext=m4a]\u002Fbest[height\u003C=1080]\n-o %(uploader)s\u002F%(title)s.%(ext)s\n--embed-metadata\n--embed-thumbnail\n--download-archive ~\u002F.local\u002Fshare\u002Fyt-dlp\u002Farchive.txt\n--rate-limit 10M\n--sleep-interval 3\n--write-auto-sub\n--sub-lang en\n--convert-subs srt\n```\n\n## Examples\n\n### Example 1: Download a YouTube playlist as MP3 with metadata and thumbnails\n**User prompt:** \"Download all videos from this YouTube playlist as high-quality MP3 files with embedded album art and metadata. Organize them by playlist index number. Playlist URL: https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf\"\n\nThe agent will:\n1. Verify yt-dlp and ffmpeg are installed.\n2. Run `yt-dlp -x --audio-format mp3 --audio-quality 0 --embed-thumbnail --embed-metadata -o \"%(playlist_index)03d - %(title)s.%(ext)s\" --download-archive archive.txt \"PLAYLIST_URL\"`.\n3. The archive file ensures re-running the command skips already-downloaded tracks.\n4. Report how many files were downloaded and their total size.\n\n### Example 2: Extract audio from a conference talk and generate subtitles\n**User prompt:** \"Download this conference talk as 720p MP4 with English subtitles embedded, then also extract just the audio as WAV for transcription: https:\u002F\u002Fyoutube.com\u002Fwatch?v=dQw4w9WgXcQ\"\n\nThe agent will:\n1. Download the video with embedded subtitles: `yt-dlp -f \"bestvideo[height\u003C=720]+bestaudio\" --merge-output-format mp4 --embed-subs --sub-lang en --write-auto-sub \"URL\"`.\n2. Extract audio separately: `yt-dlp -x --audio-format wav -o \"talk-audio.%(ext)s\" \"URL\"`.\n3. Confirm both files exist and report their sizes and durations.\n\n## Guidelines\n\n- Always install ffmpeg alongside yt-dlp; it is required for merging separate video and audio streams and for audio format conversion.\n- Use `--download-archive archive.txt` when downloading playlists or channels to avoid re-downloading videos on subsequent runs.\n- Apply rate limiting with `--rate-limit 5M --sleep-interval 5` when batch downloading to avoid being throttled or blocked by the source platform.\n- Use `-f \"bestvideo[height\u003C=1080]+bestaudio\u002Fbest[height\u003C=1080]\"` as a default format selector to get good quality without unnecessarily large 4K files.\n- Keep yt-dlp updated regularly with `yt-dlp -U`; extractors break frequently as platforms change their APIs and page structures.\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FTerminalSkills\u002Fskills\u002Fyt-dlp",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill yt-dlp",{"tool":39,"command":40},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill yt-dlp",{"tool":42,"command":43},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill yt-dlp","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fyt-dlp\u002FSKILL.md",true,[47,53,59,63,67,71,75,79,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,227,231,235,239,243,247,251,255,259,263,267,273,277,281,285,289,293,297,301,305,309,313,317,321,325,329,333,337,341],{"path":48,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":51,"sourceHtmlUrl":52},"checklist.md","REFERENCE","参考文档",13686,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fchecklist.md",{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},"customize.toml","OTHER","其他",1551,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fcustomize.toml",{"path":60,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":61,"sourceHtmlUrl":62},"instructions.md",1131,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Finstructions.md",{"path":64,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":65,"sourceHtmlUrl":66},"nfr-report-template.md",13925,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fnfr-report-template.md",{"path":68,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":69,"sourceHtmlUrl":70},"resources\u002Fknowledge\u002Fadr-quality-readiness-checklist.md",25356,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fadr-quality-readiness-checklist.md",{"path":72,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":73,"sourceHtmlUrl":74},"resources\u002Fknowledge\u002Fapi-request.md",17129,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fapi-request.md",{"path":76,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":77,"sourceHtmlUrl":78},"resources\u002Fknowledge\u002Fapi-testing-patterns.md",26976,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fapi-testing-patterns.md",{"path":80,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":81,"sourceHtmlUrl":82},"resources\u002Fknowledge\u002Fauth-session.md",16215,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fauth-session.md",{"path":84,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":85,"sourceHtmlUrl":86},"resources\u002Fknowledge\u002Fburn-in.md",6503,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fburn-in.md",{"path":88,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":89,"sourceHtmlUrl":90},"resources\u002Fknowledge\u002Fci-burn-in.md",22486,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fci-burn-in.md",{"path":92,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":93,"sourceHtmlUrl":94},"resources\u002Fknowledge\u002Fcomponent-tdd.md",16149,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fcomponent-tdd.md",{"path":96,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":97,"sourceHtmlUrl":98},"resources\u002Fknowledge\u002Fcontract-testing.md",38991,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fcontract-testing.md",{"path":100,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":101,"sourceHtmlUrl":102},"resources\u002Fknowledge\u002Fdata-factories.md",15331,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fdata-factories.md",{"path":104,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":105,"sourceHtmlUrl":106},"resources\u002Fknowledge\u002Femail-auth.md",24553,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Femail-auth.md",{"path":108,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":109,"sourceHtmlUrl":110},"resources\u002Fknowledge\u002Ferror-handling.md",22959,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ferror-handling.md",{"path":112,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":113,"sourceHtmlUrl":114},"resources\u002Fknowledge\u002Ffeature-flags.md",23214,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ffeature-flags.md",{"path":116,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":117,"sourceHtmlUrl":118},"resources\u002Fknowledge\u002Ffile-utils.md",13745,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ffile-utils.md",{"path":120,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":121,"sourceHtmlUrl":122},"resources\u002Fknowledge\u002Ffixture-architecture.md",12414,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ffixture-architecture.md",{"path":124,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":125,"sourceHtmlUrl":126},"resources\u002Fknowledge\u002Ffixtures-composition.md",11249,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ffixtures-composition.md",{"path":128,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":129,"sourceHtmlUrl":130},"resources\u002Fknowledge\u002Fintercept-network-call.md",13489,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fintercept-network-call.md",{"path":132,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":133,"sourceHtmlUrl":134},"resources\u002Fknowledge\u002Flog.md",11281,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Flog.md",{"path":136,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":137,"sourceHtmlUrl":138},"resources\u002Fknowledge\u002Fnetwork-error-monitor.md",12277,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fnetwork-error-monitor.md",{"path":140,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":141,"sourceHtmlUrl":142},"resources\u002Fknowledge\u002Fnetwork-first.md",16327,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fnetwork-first.md",{"path":144,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":145,"sourceHtmlUrl":146},"resources\u002Fknowledge\u002Fnetwork-recorder.md",15499,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fnetwork-recorder.md",{"path":148,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":149,"sourceHtmlUrl":150},"resources\u002Fknowledge\u002Fnfr-criteria.md",26670,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fnfr-criteria.md",{"path":152,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":153,"sourceHtmlUrl":154},"resources\u002Fknowledge\u002Foverview.md",9663,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Foverview.md",{"path":156,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":157,"sourceHtmlUrl":158},"resources\u002Fknowledge\u002Fpact-broker-webhooks.md",13376,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fpact-broker-webhooks.md",{"path":160,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":161,"sourceHtmlUrl":162},"resources\u002Fknowledge\u002Fpact-consumer-di.md",12005,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fpact-consumer-di.md",{"path":164,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":165,"sourceHtmlUrl":166},"resources\u002Fknowledge\u002Fpact-consumer-framework-setup.md",35846,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fpact-consumer-framework-setup.md",{"path":168,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":169,"sourceHtmlUrl":170},"resources\u002Fknowledge\u002Fpact-mcp.md",8977,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fpact-mcp.md",{"path":172,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":173,"sourceHtmlUrl":174},"resources\u002Fknowledge\u002Fpactjs-utils-consumer-helpers.md",16029,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fpactjs-utils-consumer-helpers.md",{"path":176,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":177,"sourceHtmlUrl":178},"resources\u002Fknowledge\u002Fpactjs-utils-overview.md",10481,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fpactjs-utils-overview.md",{"path":180,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":181,"sourceHtmlUrl":182},"resources\u002Fknowledge\u002Fpactjs-utils-provider-verifier.md",18180,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fpactjs-utils-provider-verifier.md",{"path":184,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":185,"sourceHtmlUrl":186},"resources\u002Fknowledge\u002Fpactjs-utils-request-filter.md",7275,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fpactjs-utils-request-filter.md",{"path":188,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":189,"sourceHtmlUrl":190},"resources\u002Fknowledge\u002Fplaywright-cli.md",14993,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fplaywright-cli.md",{"path":192,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":193,"sourceHtmlUrl":194},"resources\u002Fknowledge\u002Fplaywright-config.md",21457,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fplaywright-config.md",{"path":196,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":197,"sourceHtmlUrl":198},"resources\u002Fknowledge\u002Fprobability-impact.md",19200,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fprobability-impact.md",{"path":200,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":201,"sourceHtmlUrl":202},"resources\u002Fknowledge\u002Frecurse.md",12936,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Frecurse.md",{"path":204,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":205,"sourceHtmlUrl":206},"resources\u002Fknowledge\u002Frisk-governance.md",20965,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Frisk-governance.md",{"path":208,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":209,"sourceHtmlUrl":210},"resources\u002Fknowledge\u002Fselective-testing.md",21846,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fselective-testing.md",{"path":212,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":213,"sourceHtmlUrl":214},"resources\u002Fknowledge\u002Fselector-resilience.md",19784,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fselector-resilience.md",{"path":216,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":217,"sourceHtmlUrl":218},"resources\u002Fknowledge\u002Ftest-healing-patterns.md",21388,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ftest-healing-patterns.md",{"path":220,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":221,"sourceHtmlUrl":222},"resources\u002Fknowledge\u002Ftest-levels-framework.md",14756,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ftest-levels-framework.md",{"path":224,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":225,"sourceHtmlUrl":226},"resources\u002Fknowledge\u002Ftest-priorities-matrix.md",11454,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ftest-priorities-matrix.md",{"path":228,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":229,"sourceHtmlUrl":230},"resources\u002Fknowledge\u002Ftest-quality.md",24580,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ftest-quality.md",{"path":232,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":233,"sourceHtmlUrl":234},"resources\u002Fknowledge\u002Ftiming-debugging.md",14021,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Ftiming-debugging.md",{"path":236,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":237,"sourceHtmlUrl":238},"resources\u002Fknowledge\u002Fvisual-debugging.md",17480,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fvisual-debugging.md",{"path":240,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":241,"sourceHtmlUrl":242},"resources\u002Fknowledge\u002Fwebhook-module-setup.md",5834,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fwebhook-module-setup.md",{"path":244,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":245,"sourceHtmlUrl":246},"resources\u002Fknowledge\u002Fwebhook-providers.md",6440,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fwebhook-providers.md",{"path":248,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":249,"sourceHtmlUrl":250},"resources\u002Fknowledge\u002Fwebhook-risk-guidance.md",6474,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fwebhook-risk-guidance.md",{"path":252,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":253,"sourceHtmlUrl":254},"resources\u002Fknowledge\u002Fwebhook-template-matchers.md",6011,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fwebhook-template-matchers.md",{"path":256,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":257,"sourceHtmlUrl":258},"resources\u002Fknowledge\u002Fwebhook-testing-fundamentals.md",3185,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fwebhook-testing-fundamentals.md",{"path":260,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":261,"sourceHtmlUrl":262},"resources\u002Fknowledge\u002Fwebhook-timeout-error.md",5726,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fwebhook-timeout-error.md",{"path":264,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":265,"sourceHtmlUrl":266},"resources\u002Fknowledge\u002Fwebhook-waiting-querying.md",7074,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Fknowledge\u002Fwebhook-waiting-querying.md",{"path":268,"resourceType":269,"resourceTypeDesc":270,"sizeBytes":271,"sourceHtmlUrl":272},"resources\u002Ftea-index.csv","ASSET","资产文件",11002,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fresources\u002Ftea-index.csv",{"path":274,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":275,"sourceHtmlUrl":276},"steps-c\u002Fstep-01-load-context.md",3763,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-01-load-context.md",{"path":278,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":279,"sourceHtmlUrl":280},"steps-c\u002Fstep-01b-resume.md",3326,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-01b-resume.md",{"path":282,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":283,"sourceHtmlUrl":284},"steps-c\u002Fstep-02-define-thresholds.md",2588,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-02-define-thresholds.md",{"path":286,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":287,"sourceHtmlUrl":288},"steps-c\u002Fstep-03-gather-evidence.md",3143,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-03-gather-evidence.md",{"path":290,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":291,"sourceHtmlUrl":292},"steps-c\u002Fstep-04-evaluate-and-score.md",6989,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-04-evaluate-and-score.md",{"path":294,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":295,"sourceHtmlUrl":296},"steps-c\u002Fstep-04a-subagent-security.md",3167,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-04a-subagent-security.md",{"path":298,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":299,"sourceHtmlUrl":300},"steps-c\u002Fstep-04b-subagent-performance.md",1826,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-04b-subagent-performance.md",{"path":302,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":303,"sourceHtmlUrl":304},"steps-c\u002Fstep-04c-subagent-reliability.md",1843,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-04c-subagent-reliability.md",{"path":306,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":307,"sourceHtmlUrl":308},"steps-c\u002Fstep-04d-subagent-scalability.md",2020,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-04d-subagent-scalability.md",{"path":310,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":311,"sourceHtmlUrl":312},"steps-c\u002Fstep-04e-aggregate-nfr.md",6937,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-04e-aggregate-nfr.md",{"path":314,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":315,"sourceHtmlUrl":316},"steps-c\u002Fstep-05-generate-report.md",3171,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-c\u002Fstep-05-generate-report.md",{"path":318,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":319,"sourceHtmlUrl":320},"steps-e\u002Fstep-01-assess.md",1253,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-e\u002Fstep-01-assess.md",{"path":322,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":323,"sourceHtmlUrl":324},"steps-e\u002Fstep-02-apply-edit.md",1475,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-e\u002Fstep-02-apply-edit.md",{"path":326,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":327,"sourceHtmlUrl":328},"steps-v\u002Fstep-01-validate.md",1798,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fsteps-v\u002Fstep-01-validate.md",{"path":330,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":331,"sourceHtmlUrl":332},"validation-report-20260127-095021.md",2072,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fvalidation-report-20260127-095021.md",{"path":334,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":335,"sourceHtmlUrl":336},"validation-report-20260127-102401.md",3745,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fvalidation-report-20260127-102401.md",{"path":338,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":339,"sourceHtmlUrl":340},"workflow-plan.md",397,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fworkflow-plan.md",{"path":342,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":343,"sourceHtmlUrl":344},"workflow.yaml",1635,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.roo\u002Fskills\u002Fbmad-testarch-nfr\u002Fworkflow.yaml",[346,360,370,379,385,392],{"skillNo":347,"name":348,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":349,"categories":350,"keywords":356,"publishedAt":20},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[351],{"categoryNo":352,"categoryName":353,"taxonomyType":354,"taxonomyTypeDesc":355},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[357,358,359],"model","model hierarchy","model hierarchy skill",{"skillNo":361,"name":362,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":363,"categories":364,"keywords":366,"publishedAt":20},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[365],{"categoryNo":352,"categoryName":353,"taxonomyType":354,"taxonomyTypeDesc":355},[367,368,369],"MCP","zoom","zoom mcp",{"skillNo":371,"name":372,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":373,"categories":374,"keywords":375,"publishedAt":20},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[376,377,378,368],"sdk","zoom apps sdk","apps",{"skillNo":380,"name":381,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":382,"categories":383,"keywords":384,"publishedAt":20},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[381],{"skillNo":386,"name":387,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":388,"categories":389,"keywords":391,"publishedAt":20},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[390],{"categoryNo":352,"categoryName":353,"taxonomyType":354,"taxonomyTypeDesc":355},[387],{"skillNo":393,"name":394,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":395,"categories":396,"keywords":397,"publishedAt":20},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[394]]