[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EMRV98SNKDR7QNT5KNJ490":3,"skill-same:01M6EMRV98SNKDR7QNT5KNJ490":101},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6EMRV98SNKDR7QNT5KNJ490","ux-waiting-audit",null,"Audit UX waiting states for web applications with long-running operations (30+ seconds). Use when asked to evaluate, audit, or analyze a product's loading states, wait times, progress indicators, or user experience during slow operations. Requires browser automation (Chrome MCP tools). Generates comprehensive reports with screenshots, checklist evaluation, and prioritized recommendations.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbayramannakov\u002Fux-waiting-audit\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"ux waiting audit","ux","audit","applications","long","wait","progress","user experience","recommendations","reports","use","analyze","MCP","Tools","Evaluation","product","browser","automation","browser automation","screenshots","2026-11-10 10:12:30",false,"---\nname: ux-waiting-audit\ndescription: Audit UX waiting states for web applications with long-running operations (30+ seconds). Use when asked to evaluate, audit, or analyze a product's loading states, wait times, progress indicators, or user experience during slow operations. Requires browser automation (Chrome MCP tools). Generates comprehensive reports with screenshots, checklist evaluation, and prioritized recommendations.\n---\n\n# UX Waiting States Audit\n\nEvaluate how applications handle long-running operations (30+ seconds) using browser automation.\n\n## Core Principle\n\n**Screenshot First, DOM Second** — always take a screenshot when navigating or stuck. Visual inspection beats DOM probing.\n\n```\n? Screenshot → ? Analyze visually → ? Click coordinates → ? Verify → Repeat\n```\n\n---\n\n## Critical: Screenshot-First Automation\n\n### When to Screenshot\n\nALWAYS screenshot:\n- After opening any URL (initial state)\n- Before trying to interact with elements  \n- When ANY JavaScript returns \"missing value\" or fails\n- After clicking\u002Fsubmitting (verify success)\n- At timed intervals during long operations\n\n### Why Screenshots Beat DOM Probing\n\n| DOM Approach | Screenshot Approach |\n|--------------|---------------------|\n| Complex selectors fail silently | Visual shows exact UI state |\n| \"missing value\" gives no info | Image reveals button locations |\n| 10+ attempts to find element | 1 screenshot → click coordinates |\n| Can't see actual user experience | See exactly what user sees |\n\n### Screenshot Workflow Pattern\n\n```python\n# 1. Navigate\nControl Chrome:open_url(TARGET_URL)\nsleep(2)\n\n# 2. ALWAYS screenshot first\n# Use browser screenshot or html2canvas\n# Analyze the image before ANY interaction\n\n# 3. If interaction needed, prefer coordinates over selectors\n# After seeing screenshot: \"The submit button is at ~(1200, 650)\"\nControl Chrome:execute_javascript(\"document.elementFromPoint(1200, 650).click()\")\n\n# 4. Screenshot again to verify\n```\n\n---\n\n## Quick Start Workflow\n\n### Phase 1: Setup & Navigate\n\n```python\n# 1. Navigate to target URL\nControl Chrome:open_url(TARGET_URL)\nsleep(3)\n\n# 2. SCREENSHOT - See what loaded\n# Analyze: What's visible? Where are interactive elements?\n\n# 3. Ask user to help identify:\n#    - Which operation to test\n#    - How to trigger it (button location, input needed)\n```\n\n### Phase 2: Trigger Operation (The Hard Part)\n\n**This is often where audits get stuck.** Modern SPAs have complex UIs.\n\n```python\n# Strategy 1: Ask user for guidance\n# \"I see the page. Can you describe where the button is or what to click?\"\n\n# Strategy 2: Use simple, targeted JS\nControl Chrome:execute_javascript(\"document.querySelector('button[type=submit]').click()\")\n\n# Strategy 3: Coordinate-based clicking (after screenshot)\nControl Chrome:execute_javascript(\"document.elementFromPoint(X, Y).click()\")\n\n# Strategy 4: Let user trigger manually\n# \"Please click the button to start the operation, then tell me when it's processing\"\n```\n\n### Phase 3: Capture Waiting States\n\nOnce operation is running:\n```python\n# T+0s: Screenshot immediately when operation starts\n# T+10s: Screenshot after 10 seconds\nsleep(10)\n# Screenshot + capture_state.js\n\n# T+30s: Screenshot after 30 seconds  \nsleep(20)\n# Screenshot + capture_state.js\n\n# T+Complete: Screenshot when done\n# Watch for UI changes indicating completion\n```\n\n### Phase 4: Evaluate & Report\n\n```python\n# 1. Evaluate screenshots against checklist (see references\u002Fchecklist.md)\n# 2. Generate report with annotated screenshots\n# 3. Prioritize recommendations\n```\n\n---\n\n## Troubleshooting: When Stuck\n\n### Problem: Can't find\u002Fclick element\n\n```\n❌ WRONG: Keep trying different selectors\n   → Wastes time, silent failures\n\n✅ RIGHT: Take screenshot, analyze visually\n   → Ask user for help if needed\n   → Use coordinate-based clicking\n```\n\n### Problem: JavaScript returns \"missing value\"\n\nThis usually means:\n1. The script is too complex (simplify it)\n2. The element doesn't exist (screenshot to verify)\n3. Timing issue (add sleep, retry)\n\n**Fix:** Use simple one-liner JS, not complex functions.\n\n```javascript\n\u002F\u002F ❌ Complex (fails silently)\n(function() { const elements = []; ... return JSON.stringify(elements); })()\n\n\u002F\u002F ✅ Simple (clear result)\ndocument.body.innerText.substring(0, 500)\ndocument.querySelectorAll('button').length\ndocument.querySelector('.loading') !== null\n```\n\n### Problem: Form won't submit\n\nTry in order:\n1. Screenshot to see submit button location\n2. `document.forms[0].submit()`\n3. Click submit button by coordinates\n4. Ask user to submit manually\n\n---\n\n## Audit Instructions\n\n### Step 1: Understand the Target\n\nAsk user for:\n1. **URL** to audit\n2. **Operation** to test (search, report generation, AI task, etc.)\n3. **How to trigger** — button name, location, or steps\n4. **Expected duration** (helps calibrate screenshot intervals)\n5. **Any auth requirements** (login credentials if needed)\n\n**If user is available:** Ask them to trigger the operation manually while you capture screenshots. This avoids navigation complexity.\n\n### Step 2: Capture Sequence\n\n**Always screenshot first.** Then run simple state checks:\n\n```javascript\n\u002F\u002F Simple one-liners that won't fail silently:\n\n\u002F\u002F Check for spinner\n!!document.querySelector('[class*=\"spin\"], [class*=\"load\"], .spinner')\n\n\u002F\u002F Check for progress bar\n!!document.querySelector('progress, [role=\"progressbar\"]')\n\n\u002F\u002F Get visible text (look for status messages)\ndocument.body.innerText.substring(0, 1000)\n\n\u002F\u002F Count results appearing\ndocument.querySelectorAll('[class*=\"result\"], [class*=\"item\"]').length\n```\n\n**Capture Timeline:**\n| Time | Action |\n|------|--------|\n| T+0s | Screenshot + note what triggered |\n| T+10s | Screenshot + simple state checks |\n| T+30s | Screenshot + simple state checks |\n| T+Complete | Screenshot + final state |\n\n### Step 3: Evaluate Against Checklist\n\nLoad and evaluate against `references\u002Fchecklist.md`. Score each category:\n- ✅ Present and well-implemented\n- ⚠️ Partially implemented \u002F needs improvement  \n- ❌ Missing\n- N\u002FA Not applicable to this operation\n\n### Step 4: Generate Report\n\nUse template from `references\u002Freport-template.md`.\n\n---\n\n## Key Evaluation Patterns\n\n### Progressive Value Detection\n\nLook for:\n```javascript\n\u002F\u002F Partial results appearing\ndocument.querySelectorAll('[class*=\"result\"], [class*=\"item\"], li, tr').length\n\n\u002F\u002F Streaming content\ndocument.querySelector('[class*=\"stream\"], [class*=\"typing\"], [class*=\"cursor\"]')\n```\n\n### Heartbeat Indicators\n\nLook for:\n```javascript\n\u002F\u002F Counters\ndocument.body.innerText.match(\u002F\\d+\\s*(found|processed|complete|%)\u002Fgi)\n\n\u002F\u002F Animations (CSS or JS)\ndocument.querySelectorAll('[class*=\"animate\"], [class*=\"pulse\"], [class*=\"spin\"]')\n```\n\n### Time Estimation\n\nLook for:\n```javascript\n\u002F\u002F Time remaining text\ndocument.body.innerText.match(\u002F(\\d+\\s*(sec|min|second|minute)|remaining|left|ETA)\u002Fgi)\n\n\u002F\u002F Progress percentage\ndocument.querySelector('[role=\"progressbar\"]')?.getAttribute('aria-valuenow')\n```\n\n---\n\n## Screenshot Comparison Strategy\n\nFor each interval, note:\n1. **What changed** from previous screenshot\n2. **Activity signals** (counters, animations, partial results)\n3. **User anxiety factors** (frozen UI, no feedback)\n\nCompare:\n| Element | T+0s | T+10s | T+30s | Complete |\n|---------|------|-------|-------|----------|\n| Results visible | | | | |\n| Counter\u002Fprogress | | | | |\n| Status message | | | | |\n| Animation active | | | | |\n\n---\n\n## Report Output Structure\n\nGenerate markdown report with:\n\n1. **Summary Score**: X\u002F10 categories addressed\n2. **Screenshots Gallery**: With timestamps and annotations\n3. **Strengths**: What works well\n4. **Critical Gaps**: Missing elements hurting UX most\n5. **Quick Wins**: Low-effort, high-impact improvements\n6. **Detailed Findings Table**: See `references\u002Freport-template.md`\n7. **Priority Matrix**: P1\u002FP2\u002FP3 recommendations\n\n---\n\n## Best-in-Class Comparisons\n\nReference these examples of excellent waiting UX:\n- **Figma exports**: Progress bar + percentage + file count\n- **Notion AI**: Streaming text + cursor animation\n- **ChatGPT**: Token-by-token streaming + stop button\n- **Linear search**: Instant partial results + refinement\n- **Vercel deployments**: Step-by-step progress + logs\n\n---\n\n## Error Scenarios to Test\n\nIf possible, test:\n1. **Partial failure**: Does UI degrade gracefully?\n2. **Network interruption**: Is progress preserved?\n3. **Timeout**: Is there clear feedback?\n\n```javascript\n\u002F\u002F Simulate slow network (if DevTools available)\n\u002F\u002F Or disconnect briefly and observe behavior\n```\n\n---\n\n## Common Issues to Flag\n\n| Issue | User Impact | Quick Fix |\n|-------|-------------|-----------|\n| Spinner only | Anxiety, abandon | Add status text |\n| No progress | \"Is it stuck?\" | Add heartbeat counter |\n| No cancellation | Trapped feeling | Add cancel button |\n| Silent completion | Missed results | Add completion animation |\n| Full-page block | Can't multitask | Move to background |\n","# UX Waiting States Audit\n\nEvaluate how applications handle long-running operations (30+ seconds) using browser automation.\n\n## Core Principle\n\n**Screenshot First, DOM Second** — always take a screenshot when navigating or stuck. Visual inspection beats DOM probing.\n\n```\n? Screenshot → ? Analyze visually → ? Click coordinates → ? Verify → Repeat\n```\n\n---\n\n## Critical: Screenshot-First Automation\n\n### When to Screenshot\n\nALWAYS screenshot:\n- After opening any URL (initial state)\n- Before trying to interact with elements  \n- When ANY JavaScript returns \"missing value\" or fails\n- After clicking\u002Fsubmitting (verify success)\n- At timed intervals during long operations\n\n### Why Screenshots Beat DOM Probing\n\n| DOM Approach | Screenshot Approach |\n|--------------|---------------------|\n| Complex selectors fail silently | Visual shows exact UI state |\n| \"missing value\" gives no info | Image reveals button locations |\n| 10+ attempts to find element | 1 screenshot → click coordinates |\n| Can't see actual user experience | See exactly what user sees |\n\n### Screenshot Workflow Pattern\n\n```python\n# 1. Navigate\nControl Chrome:open_url(TARGET_URL)\nsleep(2)\n\n# 2. ALWAYS screenshot first\n# Use browser screenshot or html2canvas\n# Analyze the image before ANY interaction\n\n# 3. If interaction needed, prefer coordinates over selectors\n# After seeing screenshot: \"The submit button is at ~(1200, 650)\"\nControl Chrome:execute_javascript(\"document.elementFromPoint(1200, 650).click()\")\n\n# 4. Screenshot again to verify\n```\n\n---\n\n## Quick Start Workflow\n\n### Phase 1: Setup & Navigate\n\n```python\n# 1. Navigate to target URL\nControl Chrome:open_url(TARGET_URL)\nsleep(3)\n\n# 2. SCREENSHOT - See what loaded\n# Analyze: What's visible? Where are interactive elements?\n\n# 3. Ask user to help identify:\n#    - Which operation to test\n#    - How to trigger it (button location, input needed)\n```\n\n### Phase 2: Trigger Operation (The Hard Part)\n\n**This is often where audits get stuck.** Modern SPAs have complex UIs.\n\n```python\n# Strategy 1: Ask user for guidance\n# \"I see the page. Can you describe where the button is or what to click?\"\n\n# Strategy 2: Use simple, targeted JS\nControl Chrome:execute_javascript(\"document.querySelector('button[type=submit]').click()\")\n\n# Strategy 3: Coordinate-based clicking (after screenshot)\nControl Chrome:execute_javascript(\"document.elementFromPoint(X, Y).click()\")\n\n# Strategy 4: Let user trigger manually\n# \"Please click the button to start the operation, then tell me when it's processing\"\n```\n\n### Phase 3: Capture Waiting States\n\nOnce operation is running:\n```python\n# T+0s: Screenshot immediately when operation starts\n# T+10s: Screenshot after 10 seconds\nsleep(10)\n# Screenshot + capture_state.js\n\n# T+30s: Screenshot after 30 seconds  \nsleep(20)\n# Screenshot + capture_state.js\n\n# T+Complete: Screenshot when done\n# Watch for UI changes indicating completion\n```\n\n### Phase 4: Evaluate & Report\n\n```python\n# 1. Evaluate screenshots against checklist (see references\u002Fchecklist.md)\n# 2. Generate report with annotated screenshots\n# 3. Prioritize recommendations\n```\n\n---\n\n## Troubleshooting: When Stuck\n\n### Problem: Can't find\u002Fclick element\n\n```\n❌ WRONG: Keep trying different selectors\n   → Wastes time, silent failures\n\n✅ RIGHT: Take screenshot, analyze visually\n   → Ask user for help if needed\n   → Use coordinate-based clicking\n```\n\n### Problem: JavaScript returns \"missing value\"\n\nThis usually means:\n1. The script is too complex (simplify it)\n2. The element doesn't exist (screenshot to verify)\n3. Timing issue (add sleep, retry)\n\n**Fix:** Use simple one-liner JS, not complex functions.\n\n```javascript\n\u002F\u002F ❌ Complex (fails silently)\n(function() { const elements = []; ... return JSON.stringify(elements); })()\n\n\u002F\u002F ✅ Simple (clear result)\ndocument.body.innerText.substring(0, 500)\ndocument.querySelectorAll('button').length\ndocument.querySelector('.loading') !== null\n```\n\n### Problem: Form won't submit\n\nTry in order:\n1. Screenshot to see submit button location\n2. `document.forms[0].submit()`\n3. Click submit button by coordinates\n4. Ask user to submit manually\n\n---\n\n## Audit Instructions\n\n### Step 1: Understand the Target\n\nAsk user for:\n1. **URL** to audit\n2. **Operation** to test (search, report generation, AI task, etc.)\n3. **How to trigger** — button name, location, or steps\n4. **Expected duration** (helps calibrate screenshot intervals)\n5. **Any auth requirements** (login credentials if needed)\n\n**If user is available:** Ask them to trigger the operation manually while you capture screenshots. This avoids navigation complexity.\n\n### Step 2: Capture Sequence\n\n**Always screenshot first.** Then run simple state checks:\n\n```javascript\n\u002F\u002F Simple one-liners that won't fail silently:\n\n\u002F\u002F Check for spinner\n!!document.querySelector('[class*=\"spin\"], [class*=\"load\"], .spinner')\n\n\u002F\u002F Check for progress bar\n!!document.querySelector('progress, [role=\"progressbar\"]')\n\n\u002F\u002F Get visible text (look for status messages)\ndocument.body.innerText.substring(0, 1000)\n\n\u002F\u002F Count results appearing\ndocument.querySelectorAll('[class*=\"result\"], [class*=\"item\"]').length\n```\n\n**Capture Timeline:**\n| Time | Action |\n|------|--------|\n| T+0s | Screenshot + note what triggered |\n| T+10s | Screenshot + simple state checks |\n| T+30s | Screenshot + simple state checks |\n| T+Complete | Screenshot + final state |\n\n### Step 3: Evaluate Against Checklist\n\nLoad and evaluate against `references\u002Fchecklist.md`. Score each category:\n- ✅ Present and well-implemented\n- ⚠️ Partially implemented \u002F needs improvement  \n- ❌ Missing\n- N\u002FA Not applicable to this operation\n\n### Step 4: Generate Report\n\nUse template from `references\u002Freport-template.md`.\n\n---\n\n## Key Evaluation Patterns\n\n### Progressive Value Detection\n\nLook for:\n```javascript\n\u002F\u002F Partial results appearing\ndocument.querySelectorAll('[class*=\"result\"], [class*=\"item\"], li, tr').length\n\n\u002F\u002F Streaming content\ndocument.querySelector('[class*=\"stream\"], [class*=\"typing\"], [class*=\"cursor\"]')\n```\n\n### Heartbeat Indicators\n\nLook for:\n```javascript\n\u002F\u002F Counters\ndocument.body.innerText.match(\u002F\\d+\\s*(found|processed|complete|%)\u002Fgi)\n\n\u002F\u002F Animations (CSS or JS)\ndocument.querySelectorAll('[class*=\"animate\"], [class*=\"pulse\"], [class*=\"spin\"]')\n```\n\n### Time Estimation\n\nLook for:\n```javascript\n\u002F\u002F Time remaining text\ndocument.body.innerText.match(\u002F(\\d+\\s*(sec|min|second|minute)|remaining|left|ETA)\u002Fgi)\n\n\u002F\u002F Progress percentage\ndocument.querySelector('[role=\"progressbar\"]')?.getAttribute('aria-valuenow')\n```\n\n---\n\n## Screenshot Comparison Strategy\n\nFor each interval, note:\n1. **What changed** from previous screenshot\n2. **Activity signals** (counters, animations, partial results)\n3. **User anxiety factors** (frozen UI, no feedback)\n\nCompare:\n| Element | T+0s | T+10s | T+30s | Complete |\n|---------|------|-------|-------|----------|\n| Results visible | | | | |\n| Counter\u002Fprogress | | | | |\n| Status message | | | | |\n| Animation active | | | | |\n\n---\n\n## Report Output Structure\n\nGenerate markdown report with:\n\n1. **Summary Score**: X\u002F10 categories addressed\n2. **Screenshots Gallery**: With timestamps and annotations\n3. **Strengths**: What works well\n4. **Critical Gaps**: Missing elements hurting UX most\n5. **Quick Wins**: Low-effort, high-impact improvements\n6. **Detailed Findings Table**: See `references\u002Freport-template.md`\n7. **Priority Matrix**: P1\u002FP2\u002FP3 recommendations\n\n---\n\n## Best-in-Class Comparisons\n\nReference these examples of excellent waiting UX:\n- **Figma exports**: Progress bar + percentage + file count\n- **Notion AI**: Streaming text + cursor animation\n- **ChatGPT**: Token-by-token streaming + stop button\n- **Linear search**: Instant partial results + refinement\n- **Vercel deployments**: Step-by-step progress + logs\n\n---\n\n## Error Scenarios to Test\n\nIf possible, test:\n1. **Partial failure**: Does UI degrade gracefully?\n2. **Network interruption**: Is progress preserved?\n3. **Timeout**: Is there clear feedback?\n\n```javascript\n\u002F\u002F Simulate slow network (if DevTools available)\n\u002F\u002F Or disconnect briefly and observe behavior\n```\n\n---\n\n## Common Issues to Flag\n\n| Issue | User Impact | Quick Fix |\n|-------|-------------|-----------|\n| Spinner only | Anxiety, abandon | Add status text |\n| No progress | \"Is it stuck?\" | Add heartbeat counter |\n| No cancellation | Trapped feeling | Add cancel button |\n| Silent completion | Missed results | Add completion animation |\n| Full-page block | Can't multitask | Move to background |\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fbayramannakov\u002Fux-waiting-audit",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":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill ux-waiting-audit",{"tool":69,"command":70},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill ux-waiting-audit",{"tool":72,"command":73},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill ux-waiting-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbayramannakov\u002Fux-waiting-audit\u002FSKILL.md",true,[77,83,87,91,97],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"README.md","REFERENCE","参考文档",3497,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbayramannakov\u002Fux-waiting-audit\u002FREADME.md",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fchecklist.md",7437,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbayramannakov\u002Fux-waiting-audit\u002Freferences\u002Fchecklist.md",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Freport-template.md",4784,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbayramannakov\u002Fux-waiting-audit\u002Freferences\u002Freport-template.md",{"path":92,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":95,"sourceHtmlUrl":96},"scripts\u002Fcapture_state.js","SCRIPT","脚本",3192,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbayramannakov\u002Fux-waiting-audit\u002Fscripts\u002Fcapture_state.js",{"path":98,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":99,"sourceHtmlUrl":100},"skill-report.json",19111,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbayramannakov\u002Fux-waiting-audit\u002Fskill-report.json",[102,112,121,130,136,143],{"skillNo":103,"name":104,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":108,"publishedAt":49},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[107],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[109,110,111],"model","model hierarchy","model hierarchy skill",{"skillNo":113,"name":114,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":118,"publishedAt":49},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[117],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[41,119,120],"zoom","zoom mcp",{"skillNo":122,"name":123,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":49},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[127,128,129,119],"sdk","zoom apps sdk","apps",{"skillNo":131,"name":132,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":49},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[132],{"skillNo":137,"name":138,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":142,"publishedAt":49},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[141],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[138],{"skillNo":144,"name":145,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":49},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[145]]