[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F6NHE1VBAHS1W8J5RW1WS2":3,"skill-same:01M6F6NHE1VBAHS1W8J5RW1WS2":78},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":60,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6F6NHE1VBAHS1W8J5RW1WS2","algolia-common-errors",null,"Diagnose and fix the top Algolia API errors: 400, 403, 404, 429, ApiError,\nRetryError, and indexing failures.\nTrigger: \"algolia error\", \"fix algolia\", \"algolia not working\",\n\"debug algolia\", \"algolia 429\", \"algolia 403\".","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\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Falgolia-common-errors\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"algolia common errors","common","curl","algolia","429","error","trigger","io","indexing","fix","read","debug","grep","Bash","api","saas","search","npm","code","diagnose","2026-11-10 10:12:30",false,"---\nname: algolia-common-errors\ndescription: |\n  Diagnose and fix the top Algolia API errors: 400, 403, 404, 429, ApiError,\n  RetryError, and indexing failures.\n  Trigger: \"algolia error\", \"fix algolia\", \"algolia not working\",\n  \"debug algolia\", \"algolia 429\", \"algolia 403\".\nallowed-tools: Read, Grep, Bash(curl:*), Bash(npm:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ntags: [saas, search, algolia]\ncompatible-with: claude-code\n---\n\n# Algolia Common Errors\n\n## Overview\n\nQuick reference for the most common Algolia errors, their root causes, and fixes. All examples use `algoliasearch` v5 client error types.\n\n## Error Reference\n\n### 1. Invalid Application-ID or API key (403)\n\n```\nApiError: Invalid Application-ID or API key\n```\n\n**Cause:** App ID or API key is wrong, expired, or deleted.\n\n**Fix:**\n```bash\n# Verify your env vars are set\necho \"APP_ID: $ALGOLIA_APP_ID\"\necho \"KEY set: ${ALGOLIA_ADMIN_KEY:+yes}\"\n\n# Test with curl\ncurl -s \"https:\u002F\u002F${ALGOLIA_APP_ID}-dsn.algolia.net\u002F1\u002Findexes\" \\\n  -H \"X-Algolia-Application-Id: ${ALGOLIA_APP_ID}\" \\\n  -H \"X-Algolia-API-Key: ${ALGOLIA_ADMIN_KEY}\" | head -c 200\n```\n\nGet fresh keys: dashboard.algolia.com > Settings > API Keys.\n\n---\n\n### 2. Method not allowed with this API key (403)\n\n```\nApiError: Method not allowed with this API key\n```\n\n**Cause:** Using a Search-Only key for a write operation (saveObjects, setSettings, etc.).\n\n**Fix:** Use the Admin API key for write operations. Search-Only keys only permit `search` ACL.\n\n```typescript\n\u002F\u002F Wrong: search-only key for indexing\nconst client = algoliasearch(appId, searchOnlyKey);\nawait client.saveObjects({ ... }); \u002F\u002F 403\n\n\u002F\u002F Right: admin key for indexing\nconst client = algoliasearch(appId, adminKey);\nawait client.saveObjects({ ... }); \u002F\u002F Works\n```\n\n---\n\n### 3. Index does not exist (404)\n\n```\nApiError: Index products_staging does not exist\n```\n\n**Cause:** Searching an index that hasn't been created yet. Algolia creates indices lazily on first `saveObjects`.\n\n**Fix:** Index some data first, or check the index name for typos:\n```bash\n# List all indices in your app\ncurl -s \"https:\u002F\u002F${ALGOLIA_APP_ID}-dsn.algolia.net\u002F1\u002Findexes\" \\\n  -H \"X-Algolia-Application-Id: ${ALGOLIA_APP_ID}\" \\\n  -H \"X-Algolia-API-Key: ${ALGOLIA_ADMIN_KEY}\" | jq '.items[].name'\n```\n\n---\n\n### 4. Rate limit exceeded (429)\n\n```\nApiError: Too Many Requests\n```\n\n**Cause:** API key's `maxQueriesPerIPPerHour` exceeded, or server-side indexing rate limit hit.\n\n**Fix:**\n```typescript\n\u002F\u002F Algolia's built-in retry handles transient 429s.\n\u002F\u002F For sustained rate limits:\n\n\u002F\u002F 1. Reduce batch frequency\nconst BATCH_SIZE = 500;  \u002F\u002F Down from 1000\n\n\u002F\u002F 2. Add delay between batches\nfor (const batch of chunks) {\n  await client.saveObjects({ indexName: 'products', objects: batch });\n  await new Promise(r => setTimeout(r, 200)); \u002F\u002F 200ms pause between batches\n}\n\n\u002F\u002F 3. Check\u002Fincrease key rate limit\n\u002F\u002F Dashboard > Settings > API Keys > Edit key > Rate limit\n```\n\n---\n\n### 5. Record is too big (400)\n\n```\nApiError: Record at the position 0 is too big size=15234 bytes. Contact us if you need a higher quota.\n```\n\n**Cause:** Single record exceeds 10KB (free\u002FBuild plan) or 100KB (paid plans).\n\n**Fix:**\n```typescript\n\u002F\u002F Strip unnecessary fields before indexing\nfunction trimForAlgolia(record: any) {\n  const { full_html, raw_content, internal_notes, ...searchable } = record;\n  return searchable;\n}\n\n\u002F\u002F Or split long text into chunks\nfunction truncateDescription(record: any, maxChars = 5000) {\n  return {\n    ...record,\n    description: record.description?.substring(0, maxChars),\n  };\n}\n```\n\n---\n\n### 6. Attribute not valid for filtering (400)\n\n```\nApiError: Attribute \"price\" is not in attributesForFaceting\n```\n\n**Cause:** Using `filters` or `facetFilters` on an attribute not configured for faceting.\n\n**Fix:**\n```typescript\nawait client.setSettings({\n  indexName: 'products',\n  indexSettings: {\n    attributesForFaceting: ['category', 'brand', 'filterOnly(price)', 'filterOnly(in_stock)'],\n  },\n});\n\u002F\u002F Wait for settings to propagate\n```\n\n---\n\n### 7. RetryError: Unreachable hosts\n\n```\nRetryError: Unreachable hosts - yourass might not be connected to the internet\n```\n\n**Cause:** Network\u002FDNS issue. Can't reach `*.algolia.net` or `*.algolianet.com`.\n\n**Fix:**\n```bash\n# Test DNS resolution\nnslookup ${ALGOLIA_APP_ID}-dsn.algolia.net\n\n# Test HTTPS connectivity\ncurl -v \"https:\u002F\u002F${ALGOLIA_APP_ID}-dsn.algolia.net\u002F1\u002Findexes\" 2>&1 | grep \"Connected to\"\n\n# Check firewall — Algolia needs outbound HTTPS (443) to:\n# ${APP_ID}.algolia.net\n# ${APP_ID}-1.algolianet.com\n# ${APP_ID}-2.algolianet.com\n# ${APP_ID}-3.algolianet.com\n```\n\n---\n\n### 8. Invalid filter syntax (400)\n\n```\nApiError: Invalid syntax for filter: 'price > AND \u003C 100'\n```\n\n**Fix:** Algolia filter syntax reference:\n```\n# Correct syntax\nprice > 50 AND price \u003C 100        # Numeric range\ncategory:shoes                     # String equality\nNOT category:sandals               # Negation\n(brand:Nike OR brand:Adidas)       # Grouped OR\nin_stock = true                    # Boolean (stored as 0\u002F1)\n_tags:featured                     # Tag filter\n```\n\n## Quick Diagnostic Script\n\n```bash\n#!\u002Fbin\u002Fbash\necho \"=== Algolia Diagnostics ===\"\necho \"App ID: ${ALGOLIA_APP_ID:-NOT SET}\"\necho \"Admin key: ${ALGOLIA_ADMIN_KEY:+SET (${#ALGOLIA_ADMIN_KEY} chars)}\"\necho \"\"\n\necho \"=== Connectivity ===\"\ncurl -s -o \u002Fdev\u002Fnull -w \"HTTP %{http_code} in %{time_total}s\" \\\n  \"https:\u002F\u002F${ALGOLIA_APP_ID}-dsn.algolia.net\u002F1\u002Findexes\" \\\n  -H \"X-Algolia-Application-Id: ${ALGOLIA_APP_ID}\" \\\n  -H \"X-Algolia-API-Key: ${ALGOLIA_ADMIN_KEY}\"\necho \"\"\n\necho \"=== SDK Version ===\"\nnpm list algoliasearch 2>\u002Fdev\u002Fnull || echo \"Not installed\"\n\necho \"=== Algolia Status ===\"\ncurl -s https:\u002F\u002Fstatus.algolia.com\u002Fapi\u002Fv2\u002Fstatus.json | jq -r '.status.description' 2>\u002Fdev\u002Fnull\n```\n\n## Escalation Path\n\n1. Check [status.algolia.com](https:\u002F\u002Fstatus.algolia.com) first\n2. Collect debug info with `algolia-debug-bundle` skill\n3. Search [Algolia Support](https:\u002F\u002Fsupport.algolia.com) articles\n4. Open support ticket with request ID from error response\n\n## Resources\n\n- [Algolia Status Page](https:\u002F\u002Fstatus.algolia.com)\n- [API Key Restrictions](https:\u002F\u002Fwww.algolia.com\u002Fdoc\u002Fguides\u002Fsecurity\u002Fapi-keys\u002Fin-depth\u002Fapi-key-restrictions\u002F)\n- [Troubleshooting FAQ](https:\u002F\u002Fsupport.algolia.com\u002Fhc\u002Fen-us\u002Fcategories\u002F4406981828753)\n\n## Next Steps\n\nFor comprehensive debugging, see `algolia-debug-bundle`.\n\n","# Algolia Common Errors\n\n## Overview\n\nQuick reference for the most common Algolia errors, their root causes, and fixes. All examples use `algoliasearch` v5 client error types.\n\n## Error Reference\n\n### 1. Invalid Application-ID or API key (403)\n\n```\nApiError: Invalid Application-ID or API key\n```\n\n**Cause:** App ID or API key is wrong, expired, or deleted.\n\n**Fix:**\n```bash\n# Verify your env vars are set\necho \"APP_ID: $ALGOLIA_APP_ID\"\necho \"KEY set: ${ALGOLIA_ADMIN_KEY:+yes}\"\n\n# Test with curl\ncurl -s \"https:\u002F\u002F${ALGOLIA_APP_ID}-dsn.algolia.net\u002F1\u002Findexes\" \\\n  -H \"X-Algolia-Application-Id: ${ALGOLIA_APP_ID}\" \\\n  -H \"X-Algolia-API-Key: ${ALGOLIA_ADMIN_KEY}\" | head -c 200\n```\n\nGet fresh keys: dashboard.algolia.com > Settings > API Keys.\n\n---\n\n### 2. Method not allowed with this API key (403)\n\n```\nApiError: Method not allowed with this API key\n```\n\n**Cause:** Using a Search-Only key for a write operation (saveObjects, setSettings, etc.).\n\n**Fix:** Use the Admin API key for write operations. Search-Only keys only permit `search` ACL.\n\n```typescript\n\u002F\u002F Wrong: search-only key for indexing\nconst client = algoliasearch(appId, searchOnlyKey);\nawait client.saveObjects({ ... }); \u002F\u002F 403\n\n\u002F\u002F Right: admin key for indexing\nconst client = algoliasearch(appId, adminKey);\nawait client.saveObjects({ ... }); \u002F\u002F Works\n```\n\n---\n\n### 3. Index does not exist (404)\n\n```\nApiError: Index products_staging does not exist\n```\n\n**Cause:** Searching an index that hasn't been created yet. Algolia creates indices lazily on first `saveObjects`.\n\n**Fix:** Index some data first, or check the index name for typos:\n```bash\n# List all indices in your app\ncurl -s \"https:\u002F\u002F${ALGOLIA_APP_ID}-dsn.algolia.net\u002F1\u002Findexes\" \\\n  -H \"X-Algolia-Application-Id: ${ALGOLIA_APP_ID}\" \\\n  -H \"X-Algolia-API-Key: ${ALGOLIA_ADMIN_KEY}\" | jq '.items[].name'\n```\n\n---\n\n### 4. Rate limit exceeded (429)\n\n```\nApiError: Too Many Requests\n```\n\n**Cause:** API key's `maxQueriesPerIPPerHour` exceeded, or server-side indexing rate limit hit.\n\n**Fix:**\n```typescript\n\u002F\u002F Algolia's built-in retry handles transient 429s.\n\u002F\u002F For sustained rate limits:\n\n\u002F\u002F 1. Reduce batch frequency\nconst BATCH_SIZE = 500;  \u002F\u002F Down from 1000\n\n\u002F\u002F 2. Add delay between batches\nfor (const batch of chunks) {\n  await client.saveObjects({ indexName: 'products', objects: batch });\n  await new Promise(r => setTimeout(r, 200)); \u002F\u002F 200ms pause between batches\n}\n\n\u002F\u002F 3. Check\u002Fincrease key rate limit\n\u002F\u002F Dashboard > Settings > API Keys > Edit key > Rate limit\n```\n\n---\n\n### 5. Record is too big (400)\n\n```\nApiError: Record at the position 0 is too big size=15234 bytes. Contact us if you need a higher quota.\n```\n\n**Cause:** Single record exceeds 10KB (free\u002FBuild plan) or 100KB (paid plans).\n\n**Fix:**\n```typescript\n\u002F\u002F Strip unnecessary fields before indexing\nfunction trimForAlgolia(record: any) {\n  const { full_html, raw_content, internal_notes, ...searchable } = record;\n  return searchable;\n}\n\n\u002F\u002F Or split long text into chunks\nfunction truncateDescription(record: any, maxChars = 5000) {\n  return {\n    ...record,\n    description: record.description?.substring(0, maxChars),\n  };\n}\n```\n\n---\n\n### 6. Attribute not valid for filtering (400)\n\n```\nApiError: Attribute \"price\" is not in attributesForFaceting\n```\n\n**Cause:** Using `filters` or `facetFilters` on an attribute not configured for faceting.\n\n**Fix:**\n```typescript\nawait client.setSettings({\n  indexName: 'products',\n  indexSettings: {\n    attributesForFaceting: ['category', 'brand', 'filterOnly(price)', 'filterOnly(in_stock)'],\n  },\n});\n\u002F\u002F Wait for settings to propagate\n```\n\n---\n\n### 7. RetryError: Unreachable hosts\n\n```\nRetryError: Unreachable hosts - yourass might not be connected to the internet\n```\n\n**Cause:** Network\u002FDNS issue. Can't reach `*.algolia.net` or `*.algolianet.com`.\n\n**Fix:**\n```bash\n# Test DNS resolution\nnslookup ${ALGOLIA_APP_ID}-dsn.algolia.net\n\n# Test HTTPS connectivity\ncurl -v \"https:\u002F\u002F${ALGOLIA_APP_ID}-dsn.algolia.net\u002F1\u002Findexes\" 2>&1 | grep \"Connected to\"\n\n# Check firewall — Algolia needs outbound HTTPS (443) to:\n# ${APP_ID}.algolia.net\n# ${APP_ID}-1.algolianet.com\n# ${APP_ID}-2.algolianet.com\n# ${APP_ID}-3.algolianet.com\n```\n\n---\n\n### 8. Invalid filter syntax (400)\n\n```\nApiError: Invalid syntax for filter: 'price > AND \u003C 100'\n```\n\n**Fix:** Algolia filter syntax reference:\n```\n# Correct syntax\nprice > 50 AND price \u003C 100        # Numeric range\ncategory:shoes                     # String equality\nNOT category:sandals               # Negation\n(brand:Nike OR brand:Adidas)       # Grouped OR\nin_stock = true                    # Boolean (stored as 0\u002F1)\n_tags:featured                     # Tag filter\n```\n\n## Quick Diagnostic Script\n\n```bash\n#!\u002Fbin\u002Fbash\necho \"=== Algolia Diagnostics ===\"\necho \"App ID: ${ALGOLIA_APP_ID:-NOT SET}\"\necho \"Admin key: ${ALGOLIA_ADMIN_KEY:+SET (${#ALGOLIA_ADMIN_KEY} chars)}\"\necho \"\"\n\necho \"=== Connectivity ===\"\ncurl -s -o \u002Fdev\u002Fnull -w \"HTTP %{http_code} in %{time_total}s\" \\\n  \"https:\u002F\u002F${ALGOLIA_APP_ID}-dsn.algolia.net\u002F1\u002Findexes\" \\\n  -H \"X-Algolia-Application-Id: ${ALGOLIA_APP_ID}\" \\\n  -H \"X-Algolia-API-Key: ${ALGOLIA_ADMIN_KEY}\"\necho \"\"\n\necho \"=== SDK Version ===\"\nnpm list algoliasearch 2>\u002Fdev\u002Fnull || echo \"Not installed\"\n\necho \"=== Algolia Status ===\"\ncurl -s https:\u002F\u002Fstatus.algolia.com\u002Fapi\u002Fv2\u002Fstatus.json | jq -r '.status.description' 2>\u002Fdev\u002Fnull\n```\n\n## Escalation Path\n\n1. Check [status.algolia.com](https:\u002F\u002Fstatus.algolia.com) first\n2. Collect debug info with `algolia-debug-bundle` skill\n3. Search [Algolia Support](https:\u002F\u002Fsupport.algolia.com) articles\n4. Open support ticket with request ID from error response\n\n## Resources\n\n- [Algolia Status Page](https:\u002F\u002Fstatus.algolia.com)\n- [API Key Restrictions](https:\u002F\u002Fwww.algolia.com\u002Fdoc\u002Fguides\u002Fsecurity\u002Fapi-keys\u002Fin-depth\u002Fapi-key-restrictions\u002F)\n- [Troubleshooting FAQ](https:\u002F\u002Fsupport.algolia.com\u002Fhc\u002Fen-us\u002Fcategories\u002F4406981828753)\n\n## Next Steps\n\nFor comprehensive debugging, see `algolia-debug-bundle`.\n\n",{"name":5,"tags":49,"author":50,"license":15,"version":51,"description":52,"allowed-tools":53,"compatible-with":54},[39,40,27],"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Diagnose and fix the top Algolia API errors: 400, 403, 404, 429, ApiError,\nRetryError, and indexing failures.\nTrigger: \"algolia error\", \"fix algolia\", \"algolia not working\",\n\"debug algolia\", \"algolia 429\", \"algolia 403\".\n","Read, Grep, Bash(curl:*), Bash(npm:*)","claude-code","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Falgolia-common-errors",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":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill algolia-common-errors",{"tool":70,"command":71},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill algolia-common-errors",{"tool":73,"command":74},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill algolia-common-errors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Falgolia-common-errors\u002FSKILL.md",true,[],[79,93,103,112,118,125],{"skillNo":80,"name":81,"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":82,"categories":83,"keywords":89,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[90,91,92],"model","model hierarchy","model hierarchy skill",{"skillNo":94,"name":95,"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":96,"categories":97,"keywords":99,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[98],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},[100,101,102],"MCP","zoom","zoom mcp",{"skillNo":104,"name":105,"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":106,"categories":107,"keywords":108,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[109,110,111,101],"sdk","zoom apps sdk","apps",{"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":117,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[114],{"skillNo":119,"name":120,"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":121,"categories":122,"keywords":124,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[123],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},[120],{"skillNo":126,"name":127,"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":128,"categories":129,"keywords":130,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[127]]