[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F8GSPF2Y3WK4KM4RV4PD7Z":3,"skill-same:01M6F8GSPF2Y3WK4KM4RV4PD7Z":73},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6F8GSPF2Y3WK4KM4RV4PD7Z","clerk-prod-checklist",null,"Production readiness checklist for Clerk deployment.\nUse when preparing to deploy, reviewing production configuration,\nor auditing Clerk implementation before launch.\nTrigger with phrases like \"clerk production\", \"clerk deploy checklist\",\n\"clerk go-live\", \"clerk launch ready\".","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\u002Fclerk-prod-checklist\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"clerk prod checklist","checklist","clerk","use","deploy checklist","trigger","io","live","production readiness","ready","openclaw","edit","write","read","Bash","saas","audit","code","deployment","go","2026-11-10 10:12:30",false,"---\nname: clerk-prod-checklist\ndescription: |\n  Production readiness checklist for Clerk deployment.\n  Use when preparing to deploy, reviewing production configuration,\n  or auditing Clerk implementation before launch.\n  Trigger with phrases like \"clerk production\", \"clerk deploy checklist\",\n  \"clerk go-live\", \"clerk launch ready\".\nallowed-tools: Read, Write, Edit, Grep, Bash(npm:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\ntags: [saas, clerk, deployment, audit]\n\n---\n# Clerk Production Checklist\n\n## Overview\nComplete checklist to ensure your Clerk integration is production-ready. Covers environment config, security hardening, monitoring, error handling, and compliance.\n\n## Prerequisites\n- Clerk integration working in development\n- Production environment and domain configured\n- CI\u002FCD pipeline ready\n\n## Instructions\n\n### Step 1: Environment Configuration Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Using `pk_live_` keys | [ ] | Switch from test to live keys |\n| `CLERK_SECRET_KEY` is `sk_live_` | [ ] | Never use test keys in production |\n| `.env.local` in `.gitignore` | [ ] | Prevent accidental secret commits |\n| `CLERK_WEBHOOK_SECRET` set | [ ] | Required for webhook verification |\n| Production domain in Clerk Dashboard | [ ] | Dashboard > Domains |\n| Sign-in\u002Fsign-up URLs configured | [ ] | Set `NEXT_PUBLIC_CLERK_SIGN_IN_URL` etc. |\n\n### Step 2: Validation Script\n```typescript\n\u002F\u002F scripts\u002Fprod-readiness.ts\nimport { createClerkClient } from '@clerk\u002Fbackend'\n\nasync function validateProduction() {\n  const checks: { name: string; pass: boolean; detail: string }[] = []\n\n  \u002F\u002F 1. Live keys check\n  const pk = process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY || ''\n  const sk = process.env.CLERK_SECRET_KEY || ''\n  checks.push({\n    name: 'Live publishable key',\n    pass: pk.startsWith('pk_live_'),\n    detail: pk.startsWith('pk_live_') ? 'Using live key' : `Using ${pk.slice(0, 8)}... (should be pk_live_)`,\n  })\n  checks.push({\n    name: 'Live secret key',\n    pass: sk.startsWith('sk_live_'),\n    detail: sk.startsWith('sk_live_') ? 'Using live key' : 'Should be sk_live_ for production',\n  })\n\n  \u002F\u002F 2. API connectivity\n  try {\n    const clerk = createClerkClient({ secretKey: sk })\n    await clerk.users.getUserList({ limit: 1 })\n    checks.push({ name: 'API connectivity', pass: true, detail: 'Backend API reachable' })\n  } catch (err: any) {\n    checks.push({ name: 'API connectivity', pass: false, detail: err.message })\n  }\n\n  \u002F\u002F 3. Webhook secret\n  checks.push({\n    name: 'Webhook secret configured',\n    pass: !!process.env.CLERK_WEBHOOK_SECRET,\n    detail: process.env.CLERK_WEBHOOK_SECRET ? 'Set' : 'CLERK_WEBHOOK_SECRET missing',\n  })\n\n  \u002F\u002F 4. Middleware exists\n  const fs = await import('fs')\n  const hasMiddleware = fs.existsSync('middleware.ts') || fs.existsSync('src\u002Fmiddleware.ts')\n  checks.push({\n    name: 'Middleware present',\n    pass: hasMiddleware,\n    detail: hasMiddleware ? 'Found' : 'middleware.ts not found at project root',\n  })\n\n  \u002F\u002F Print results\n  console.log('\\n=== Clerk Production Readiness ===\\n')\n  for (const check of checks) {\n    const icon = check.pass ? 'PASS' : 'FAIL'\n    console.log(`[${icon}] ${check.name}: ${check.detail}`)\n  }\n\n  const allPass = checks.every((c) => c.pass)\n  console.log(`\\nResult: ${allPass ? 'READY for production' : 'NOT READY — fix failing checks'}`)\n  process.exit(allPass ? 0 : 1)\n}\n\nvalidateProduction()\n```\n\nRun with:\n```bash\nnpx tsx scripts\u002Fprod-readiness.ts\n```\n\n### Step 3: Security Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Middleware protects all routes | [ ] | Verify non-public routes require auth |\n| API routes check `userId` | [ ] | Return 401 if `userId` is null |\n| Webhook signatures verified | [ ] | Use `svix` library for verification |\n| CORS configured correctly | [ ] | Only allow production domain |\n| Rate limiting on sensitive endpoints | [ ] | Use `@upstash\u002Fratelimit` or similar |\n| CSP headers set | [ ] | Add Clerk domains to Content-Security-Policy |\n| No secret keys in client code | [ ] | `CLERK_SECRET_KEY` never exposed |\n\n### Step 4: Monitoring Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Health check endpoint | [ ] | `\u002Fapi\u002Fhealth` monitoring Clerk API |\n| Error tracking (Sentry) | [ ] | Clerk user context in error reports |\n| Auth event logging | [ ] | Log sign-in, sign-out, permission denied |\n| Webhook monitoring | [ ] | Alert on failed webhook deliveries |\n| Uptime monitoring | [ ] | External monitor hitting health endpoint |\n\n### Step 5: Error Handling Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Custom error pages | [ ] | `\u002Fnot-found`, `\u002Ferror` pages handle auth errors |\n| Graceful auth failures | [ ] | Redirect to sign-in, don't show stack traces |\n| Webhook retry handling | [ ] | Idempotency keys prevent duplicate processing |\n| Session expiry UX | [ ] | Show \"session expired\" prompt, not blank page |\n\n```typescript\n\u002F\u002F app\u002Ferror.tsx — global error boundary with auth context\n'use client'\nimport { useAuth } from '@clerk\u002Fnextjs'\n\nexport default function Error({ error, reset }: { error: Error; reset: () => void }) {\n  const { isSignedIn } = useAuth()\n\n  return (\n    \u003Cdiv>\n      \u003Ch2>Something went wrong\u003C\u002Fh2>\n      \u003Cp>{error.message}\u003C\u002Fp>\n      \u003Cbutton onClick={reset}>Try again\u003C\u002Fbutton>\n      {!isSignedIn && \u003Ca href=\"\u002Fsign-in\">Sign in\u003C\u002Fa>}\n    \u003C\u002Fdiv>\n  )\n}\n```\n\n### Step 6: Performance Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Middleware matcher excludes static files | [ ] | Don't auth-check images, fonts, CSS |\n| User data cached (`React.cache()`) | [ ] | Deduplicate within request |\n| Auth components lazy loaded | [ ] | `dynamic()` for `UserButton`, `SignInButton` |\n| Edge Runtime for middleware | [ ] | Faster cold starts on Vercel |\n\n## Output\n- Environment configuration verified (live keys, webhook secret, domain)\n- Automated validation script (run in CI or before deploy)\n- Security, monitoring, error handling, and performance checklists\n- Global error boundary component with auth context\n\n## Error Handling\n| Error | Cause | Solution |\n|-------|-------|----------|\n| Validation script fails | Test keys in production | Switch to `pk_live_` \u002F `sk_live_` keys |\n| API connectivity check fails | Wrong secret key | Verify key in Clerk Dashboard > API Keys |\n| Middleware not found | File in wrong location | Place `middleware.ts` at project root (not inside `app\u002F`) |\n| Health check returns 503 | Clerk API unreachable | Check network, verify key, check status.clerk.com |\n\n## Examples\n\n### CI Production Gate\n```yaml\n# .github\u002Fworkflows\u002Fdeploy.yml — add as pre-deploy step\n- name: Clerk production readiness\n  run: npx tsx scripts\u002Fprod-readiness.ts\n  env:\n    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${{ secrets.CLERK_PK_PROD }}\n    CLERK_SECRET_KEY: ${{ secrets.CLERK_SK_PROD }}\n    CLERK_WEBHOOK_SECRET: ${{ secrets.CLERK_WEBHOOK_SECRET_PROD }}\n```\n\n## Resources\n- [Clerk Production Checklist](https:\u002F\u002Fclerk.com\u002Fdocs\u002Fdeployments\u002Foverview)\n- [Clerk Security Best Practices](https:\u002F\u002Fclerk.com\u002Fdocs\u002Fsecurity\u002Foverview)\n- [Clerk Domain Setup](https:\u002F\u002Fclerk.com\u002Fdocs\u002Fdeployments\u002Fset-up-your-domain)\n\n## Next Steps\nProceed to `clerk-upgrade-migration` for SDK version upgrades.\n\n","# Clerk Production Checklist\n\n## Overview\nComplete checklist to ensure your Clerk integration is production-ready. Covers environment config, security hardening, monitoring, error handling, and compliance.\n\n## Prerequisites\n- Clerk integration working in development\n- Production environment and domain configured\n- CI\u002FCD pipeline ready\n\n## Instructions\n\n### Step 1: Environment Configuration Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Using `pk_live_` keys | [ ] | Switch from test to live keys |\n| `CLERK_SECRET_KEY` is `sk_live_` | [ ] | Never use test keys in production |\n| `.env.local` in `.gitignore` | [ ] | Prevent accidental secret commits |\n| `CLERK_WEBHOOK_SECRET` set | [ ] | Required for webhook verification |\n| Production domain in Clerk Dashboard | [ ] | Dashboard > Domains |\n| Sign-in\u002Fsign-up URLs configured | [ ] | Set `NEXT_PUBLIC_CLERK_SIGN_IN_URL` etc. |\n\n### Step 2: Validation Script\n```typescript\n\u002F\u002F scripts\u002Fprod-readiness.ts\nimport { createClerkClient } from '@clerk\u002Fbackend'\n\nasync function validateProduction() {\n  const checks: { name: string; pass: boolean; detail: string }[] = []\n\n  \u002F\u002F 1. Live keys check\n  const pk = process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY || ''\n  const sk = process.env.CLERK_SECRET_KEY || ''\n  checks.push({\n    name: 'Live publishable key',\n    pass: pk.startsWith('pk_live_'),\n    detail: pk.startsWith('pk_live_') ? 'Using live key' : `Using ${pk.slice(0, 8)}... (should be pk_live_)`,\n  })\n  checks.push({\n    name: 'Live secret key',\n    pass: sk.startsWith('sk_live_'),\n    detail: sk.startsWith('sk_live_') ? 'Using live key' : 'Should be sk_live_ for production',\n  })\n\n  \u002F\u002F 2. API connectivity\n  try {\n    const clerk = createClerkClient({ secretKey: sk })\n    await clerk.users.getUserList({ limit: 1 })\n    checks.push({ name: 'API connectivity', pass: true, detail: 'Backend API reachable' })\n  } catch (err: any) {\n    checks.push({ name: 'API connectivity', pass: false, detail: err.message })\n  }\n\n  \u002F\u002F 3. Webhook secret\n  checks.push({\n    name: 'Webhook secret configured',\n    pass: !!process.env.CLERK_WEBHOOK_SECRET,\n    detail: process.env.CLERK_WEBHOOK_SECRET ? 'Set' : 'CLERK_WEBHOOK_SECRET missing',\n  })\n\n  \u002F\u002F 4. Middleware exists\n  const fs = await import('fs')\n  const hasMiddleware = fs.existsSync('middleware.ts') || fs.existsSync('src\u002Fmiddleware.ts')\n  checks.push({\n    name: 'Middleware present',\n    pass: hasMiddleware,\n    detail: hasMiddleware ? 'Found' : 'middleware.ts not found at project root',\n  })\n\n  \u002F\u002F Print results\n  console.log('\\n=== Clerk Production Readiness ===\\n')\n  for (const check of checks) {\n    const icon = check.pass ? 'PASS' : 'FAIL'\n    console.log(`[${icon}] ${check.name}: ${check.detail}`)\n  }\n\n  const allPass = checks.every((c) => c.pass)\n  console.log(`\\nResult: ${allPass ? 'READY for production' : 'NOT READY — fix failing checks'}`)\n  process.exit(allPass ? 0 : 1)\n}\n\nvalidateProduction()\n```\n\nRun with:\n```bash\nnpx tsx scripts\u002Fprod-readiness.ts\n```\n\n### Step 3: Security Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Middleware protects all routes | [ ] | Verify non-public routes require auth |\n| API routes check `userId` | [ ] | Return 401 if `userId` is null |\n| Webhook signatures verified | [ ] | Use `svix` library for verification |\n| CORS configured correctly | [ ] | Only allow production domain |\n| Rate limiting on sensitive endpoints | [ ] | Use `@upstash\u002Fratelimit` or similar |\n| CSP headers set | [ ] | Add Clerk domains to Content-Security-Policy |\n| No secret keys in client code | [ ] | `CLERK_SECRET_KEY` never exposed |\n\n### Step 4: Monitoring Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Health check endpoint | [ ] | `\u002Fapi\u002Fhealth` monitoring Clerk API |\n| Error tracking (Sentry) | [ ] | Clerk user context in error reports |\n| Auth event logging | [ ] | Log sign-in, sign-out, permission denied |\n| Webhook monitoring | [ ] | Alert on failed webhook deliveries |\n| Uptime monitoring | [ ] | External monitor hitting health endpoint |\n\n### Step 5: Error Handling Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Custom error pages | [ ] | `\u002Fnot-found`, `\u002Ferror` pages handle auth errors |\n| Graceful auth failures | [ ] | Redirect to sign-in, don't show stack traces |\n| Webhook retry handling | [ ] | Idempotency keys prevent duplicate processing |\n| Session expiry UX | [ ] | Show \"session expired\" prompt, not blank page |\n\n```typescript\n\u002F\u002F app\u002Ferror.tsx — global error boundary with auth context\n'use client'\nimport { useAuth } from '@clerk\u002Fnextjs'\n\nexport default function Error({ error, reset }: { error: Error; reset: () => void }) {\n  const { isSignedIn } = useAuth()\n\n  return (\n    \u003Cdiv>\n      \u003Ch2>Something went wrong\u003C\u002Fh2>\n      \u003Cp>{error.message}\u003C\u002Fp>\n      \u003Cbutton onClick={reset}>Try again\u003C\u002Fbutton>\n      {!isSignedIn && \u003Ca href=\"\u002Fsign-in\">Sign in\u003C\u002Fa>}\n    \u003C\u002Fdiv>\n  )\n}\n```\n\n### Step 6: Performance Checklist\n\n| Check | Status | Action |\n|-------|--------|--------|\n| Middleware matcher excludes static files | [ ] | Don't auth-check images, fonts, CSS |\n| User data cached (`React.cache()`) | [ ] | Deduplicate within request |\n| Auth components lazy loaded | [ ] | `dynamic()` for `UserButton`, `SignInButton` |\n| Edge Runtime for middleware | [ ] | Faster cold starts on Vercel |\n\n## Output\n- Environment configuration verified (live keys, webhook secret, domain)\n- Automated validation script (run in CI or before deploy)\n- Security, monitoring, error handling, and performance checklists\n- Global error boundary component with auth context\n\n## Error Handling\n| Error | Cause | Solution |\n|-------|-------|----------|\n| Validation script fails | Test keys in production | Switch to `pk_live_` \u002F `sk_live_` keys |\n| API connectivity check fails | Wrong secret key | Verify key in Clerk Dashboard > API Keys |\n| Middleware not found | File in wrong location | Place `middleware.ts` at project root (not inside `app\u002F`) |\n| Health check returns 503 | Clerk API unreachable | Check network, verify key, check status.clerk.com |\n\n## Examples\n\n### CI Production Gate\n```yaml\n# .github\u002Fworkflows\u002Fdeploy.yml — add as pre-deploy step\n- name: Clerk production readiness\n  run: npx tsx scripts\u002Fprod-readiness.ts\n  env:\n    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${{ secrets.CLERK_PK_PROD }}\n    CLERK_SECRET_KEY: ${{ secrets.CLERK_SK_PROD }}\n    CLERK_WEBHOOK_SECRET: ${{ secrets.CLERK_WEBHOOK_SECRET_PROD }}\n```\n\n## Resources\n- [Clerk Production Checklist](https:\u002F\u002Fclerk.com\u002Fdocs\u002Fdeployments\u002Foverview)\n- [Clerk Security Best Practices](https:\u002F\u002Fclerk.com\u002Fdocs\u002Fsecurity\u002Foverview)\n- [Clerk Domain Setup](https:\u002F\u002Fclerk.com\u002Fdocs\u002Fdeployments\u002Fset-up-your-domain)\n\n## Next Steps\nProceed to `clerk-upgrade-migration` for SDK version upgrades.\n\n",{"name":5,"tags":44,"author":45,"license":15,"version":46,"description":47,"allowed-tools":48,"compatible-with":49},[34,21,37,35],"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Production readiness checklist for Clerk deployment.\nUse when preparing to deploy, reviewing production configuration,\nor auditing Clerk implementation before launch.\nTrigger with phrases like \"clerk production\", \"clerk deploy checklist\",\n\"clerk go-live\", \"clerk launch ready\".\n","Read, Write, Edit, Grep, Bash(npm:*)","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fclerk-prod-checklist",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":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill clerk-prod-checklist",{"tool":65,"command":66},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill clerk-prod-checklist",{"tool":68,"command":69},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill clerk-prod-checklist","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fclerk-prod-checklist\u002FSKILL.md",true,[],[74,88,98,107,113,120],{"skillNo":75,"name":76,"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":77,"categories":78,"keywords":84,"publishedAt":39},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[85,86,87],"model","model hierarchy","model hierarchy skill",{"skillNo":89,"name":90,"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":91,"categories":92,"keywords":94,"publishedAt":39},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[93],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},[95,96,97],"MCP","zoom","zoom mcp",{"skillNo":99,"name":100,"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":101,"categories":102,"keywords":103,"publishedAt":39},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[104,105,106,96],"sdk","zoom apps sdk","apps",{"skillNo":108,"name":109,"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":110,"categories":111,"keywords":112,"publishedAt":39},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[109],{"skillNo":114,"name":115,"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":116,"categories":117,"keywords":119,"publishedAt":39},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[118],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},[115],{"skillNo":121,"name":122,"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":123,"categories":124,"keywords":125,"publishedAt":39},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[122]]