[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FA01M54VWS4B3F5S65SMTM":3,"skill-same:01M6FA01M54VWS4B3F5S65SMTM":85},{"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":29,"publishedAt":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":65,"repositoryHtmlUrl":66,"repositoryHomepageUrl":67,"ownerHtmlUrl":68,"ownerBlogUrl":6,"ownerDescription":69,"updatedAt":70,"install":71,"resources":84},"01M6FA01M54VWS4B3F5S65SMTM","documenso-local-dev-loop",null,"Set up local development environment and testing workflow for Documenso.\nUse when configuring dev environment, setting up test workflows,\nor establishing rapid iteration patterns with Documenso.\nTrigger with phrases like \"documenso local dev\", \"documenso development\",\n\"test documenso locally\", \"documenso dev environment\".","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\u002Fdocumenso-local-dev-loop\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"local dev","documenso","documenso local dev loop","local","loop","dev","SET","Bash","code","node","read","write","edit","up","workflows","iteration","io","testing workflow","workflow","testing","2026-11-10 10:12:30",false,"---\nname: documenso-local-dev-loop\ndescription: |\n  Set up local development environment and testing workflow for Documenso.\n  Use when configuring dev environment, setting up test workflows,\n  or establishing rapid iteration patterns with Documenso.\n  Trigger with phrases like \"documenso local dev\", \"documenso development\",\n  \"test documenso locally\", \"documenso dev environment\".\nallowed-tools: Read, Write, Edit, Bash(npm:*), Bash(docker:*), Bash(node:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\ntags: [saas, documenso, testing, workflow]\n\n---\n# Documenso Local Dev Loop\n\n## Overview\n\nConfigure a fast local development environment for Documenso integrations. Covers project structure, environment configs, self-hosted Documenso via Docker, test utilities, and cleanup scripts.\n\n## Prerequisites\n\n- Completed `documenso-install-auth` setup\n- Node.js 18+ with TypeScript\n- Docker (for self-hosted local Documenso)\n\n## Instructions\n\n### Step 1: Project Structure\n\n```\nmy-signing-app\u002F\n├── src\u002F\n│   └── documenso\u002F\n│       ├── client.ts          # Configured SDK client\n│       ├── documents.ts       # Document operations\n│       ├── recipients.ts      # Recipient management\n│       └── webhooks.ts        # Webhook handlers\n├── scripts\u002F\n│   ├── verify-connection.ts   # Quick health check\n│   ├── create-test-doc.ts     # Generate test documents\n│   └── cleanup-test-docs.ts   # Remove test data\n├── tests\u002F\n│   └── integration\u002F\n│       ├── document.test.ts\n│       └── template.test.ts\n├── .env.development\n├── .env.test\n└── .env.production\n```\n\n### Step 2: Environment Configuration\n\n**.env.development:**\n\n```bash\nDOCUMENSO_API_KEY=api_dev_xxxxxxxxxxxx\nDOCUMENSO_BASE_URL=https:\u002F\u002Fstg-app.documenso.com\u002Fapi\u002Fv2\nDOCUMENSO_WEBHOOK_SECRET=whsec_dev_xxxxxxxxxxxx\nLOG_LEVEL=debug\n```\n\n**.env.test:**\n\n```bash\nDOCUMENSO_API_KEY=api_test_xxxxxxxxxxxx\nDOCUMENSO_BASE_URL=https:\u002F\u002Fstg-app.documenso.com\u002Fapi\u002Fv2\nDOCUMENSO_WEBHOOK_SECRET=whsec_test_xxxxxxxxxxxx\nLOG_LEVEL=warn\n```\n\n### Step 3: Client Wrapper with Dev Helpers\n\n```typescript\n\u002F\u002F src\u002Fdocumenso\u002Fclient.ts\nimport { Documenso } from \"@documenso\u002Fsdk-typescript\";\n\nlet _client: Documenso | null = null;\n\nexport function getClient(): Documenso {\n  if (!_client) {\n    _client = new Documenso({\n      apiKey: process.env.DOCUMENSO_API_KEY!,\n      ...(process.env.DOCUMENSO_BASE_URL && {\n        serverURL: process.env.DOCUMENSO_BASE_URL,\n      }),\n    });\n  }\n  return _client;\n}\n\n\u002F\u002F Dev helper: list recent documents for debugging\nexport async function listRecentDocs(limit = 5) {\n  const client = getClient();\n  const { documents } = await client.documents.findV0({\n    page: 1,\n    perPage: limit,\n    orderByColumn: \"createdAt\",\n    orderByDirection: \"desc\",\n  });\n  return documents;\n}\n```\n\n### Step 4: Self-Hosted Local Documenso (Docker)\n\n```bash\n# Pull the official Documenso Docker image\ndocker pull documenso\u002Fdocumenso:latest\n\n# Create docker-compose.local.yml\n```\n\n```yaml\n# docker-compose.local.yml\nservices:\n  documenso:\n    image: documenso\u002Fdocumenso:latest\n    ports:\n      - \"3000:3000\"\n    environment:\n      - NEXTAUTH_URL=http:\u002F\u002Flocalhost:3000\n      - NEXTAUTH_SECRET=local-dev-secret-change-me\n      - NEXT_PRIVATE_ENCRYPTION_KEY=local-encryption-key\n      - NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=local-secondary-key\n      - NEXT_PUBLIC_WEBAPP_URL=http:\u002F\u002Flocalhost:3000\n      - NEXT_PRIVATE_DATABASE_URL=postgresql:\u002F\u002Fdocumenso:password@db:5432\u002Fdocumenso\n      - NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql:\u002F\u002Fdocumenso:password@db:5432\u002Fdocumenso\n      - NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth\n      - NEXT_PRIVATE_SMTP_HOST=mailhog\n      - NEXT_PRIVATE_SMTP_PORT=1025\n    depends_on:\n      - db\n      - mailhog\n\n  db:\n    image: postgres:16-alpine\n    environment:\n      POSTGRES_USER: documenso\n      POSTGRES_PASSWORD: password\n      POSTGRES_DB: documenso\n    volumes:\n      - pgdata:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n\n  mailhog:\n    image: mailhog\u002Fmailhog\n    ports:\n      - \"8025:8025\"  # Web UI for email inspection\n      - \"1025:1025\"\n\nvolumes:\n  pgdata:\n```\n\n```bash\ndocker compose -f docker-compose.local.yml up -d\n# Documenso at http:\u002F\u002Flocalhost:3000\n# MailHog at http:\u002F\u002Flocalhost:8025 (view sent emails)\n```\n\n**.env.local (for self-hosted dev):**\n\n```bash\nDOCUMENSO_API_KEY=api_local_xxxxxxxxxxxx\nDOCUMENSO_BASE_URL=http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fv2\n```\n\n### Step 5: Quick Verification Script\n\n```typescript\n\u002F\u002F scripts\u002Fverify-connection.ts\nimport { getClient } from \"..\u002Fsrc\u002Fdocumenso\u002Fclient\";\n\nasync function verify() {\n  const client = getClient();\n  try {\n    const { documents } = await client.documents.findV0({ page: 1, perPage: 1 });\n    console.log(\"Connection OK\");\n    console.log(`Documents accessible: ${documents.length >= 0 ? \"yes\" : \"no\"}`);\n  } catch (err: any) {\n    console.error(`Connection FAILED: ${err.message}`);\n    if (err.statusCode === 401) console.error(\"Check DOCUMENSO_API_KEY\");\n    process.exit(1);\n  }\n}\nverify();\n```\n\n### Step 6: Test Cleanup Script\n\n```typescript\n\u002F\u002F scripts\u002Fcleanup-test-docs.ts\nimport { getClient } from \"..\u002Fsrc\u002Fdocumenso\u002Fclient\";\n\nasync function cleanup() {\n  const client = getClient();\n  const { documents } = await client.documents.findV0({ page: 1, perPage: 100 });\n\n  const testDocs = documents.filter((d: any) =>\n    d.title.startsWith(\"[TEST]\") || d.title.startsWith(\"Hello World\")\n  );\n\n  for (const doc of testDocs) {\n    if (doc.status === \"DRAFT\") {\n      await client.documents.deleteV0(doc.id);\n      console.log(`Deleted: ${doc.title} (${doc.id})`);\n    } else {\n      console.log(`Skipped (${doc.status}): ${doc.title}`);\n    }\n  }\n  console.log(`Cleaned up ${testDocs.filter((d: any) => d.status === \"DRAFT\").length} test docs`);\n}\ncleanup();\n```\n\n### Step 7: Development Scripts (package.json)\n\n```json\n{\n  \"scripts\": {\n    \"dev:verify\": \"tsx scripts\u002Fverify-connection.ts\",\n    \"dev:test-doc\": \"tsx scripts\u002Fcreate-test-doc.ts\",\n    \"dev:cleanup\": \"tsx scripts\u002Fcleanup-test-docs.ts\",\n    \"dev:local\": \"docker compose -f docker-compose.local.yml up -d\",\n    \"dev:local:stop\": \"docker compose -f docker-compose.local.yml down\",\n    \"test:integration\": \"vitest run tests\u002Fintegration\u002F\"\n  }\n}\n```\n\n## Error Handling\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| `ECONNREFUSED localhost:3000` | Docker not running | Run `docker compose up -d` |\n| `401 on staging` | Wrong API key for env | Check `.env.development` key matches staging |\n| Stale test data | Tests didn't clean up | Run `npm run dev:cleanup` |\n| Rate limited in tests | Too many requests | Add `await delay(500)` between API calls |\n| Emails not arriving | SMTP misconfigured | Check MailHog at `localhost:8025` |\n\n## Resources\n\n- [Documenso Self-Hosting](https:\u002F\u002Fdocs.documenso.com\u002Fdevelopers\u002Fself-hosting\u002Fhow-to)\n- [Developer Quickstart](https:\u002F\u002Fdocs.documenso.com\u002Fdocs\u002Fdevelopers\u002Flocal-development\u002Fquickstart)\n- [Environment Variables Reference](https:\u002F\u002Fdocs.documenso.com\u002Fdocs\u002Fself-hosting\u002Fconfiguration\u002Fenvironment)\n- [MailHog](https:\u002F\u002Fgithub.com\u002Fmailhog\u002FMailHog)\n\n## Next Steps\n\nApply patterns in `documenso-sdk-patterns` for production-ready code structure.\n\n","# Documenso Local Dev Loop\n\n## Overview\n\nConfigure a fast local development environment for Documenso integrations. Covers project structure, environment configs, self-hosted Documenso via Docker, test utilities, and cleanup scripts.\n\n## Prerequisites\n\n- Completed `documenso-install-auth` setup\n- Node.js 18+ with TypeScript\n- Docker (for self-hosted local Documenso)\n\n## Instructions\n\n### Step 1: Project Structure\n\n```\nmy-signing-app\u002F\n├── src\u002F\n│   └── documenso\u002F\n│       ├── client.ts          # Configured SDK client\n│       ├── documents.ts       # Document operations\n│       ├── recipients.ts      # Recipient management\n│       └── webhooks.ts        # Webhook handlers\n├── scripts\u002F\n│   ├── verify-connection.ts   # Quick health check\n│   ├── create-test-doc.ts     # Generate test documents\n│   └── cleanup-test-docs.ts   # Remove test data\n├── tests\u002F\n│   └── integration\u002F\n│       ├── document.test.ts\n│       └── template.test.ts\n├── .env.development\n├── .env.test\n└── .env.production\n```\n\n### Step 2: Environment Configuration\n\n**.env.development:**\n\n```bash\nDOCUMENSO_API_KEY=api_dev_xxxxxxxxxxxx\nDOCUMENSO_BASE_URL=https:\u002F\u002Fstg-app.documenso.com\u002Fapi\u002Fv2\nDOCUMENSO_WEBHOOK_SECRET=whsec_dev_xxxxxxxxxxxx\nLOG_LEVEL=debug\n```\n\n**.env.test:**\n\n```bash\nDOCUMENSO_API_KEY=api_test_xxxxxxxxxxxx\nDOCUMENSO_BASE_URL=https:\u002F\u002Fstg-app.documenso.com\u002Fapi\u002Fv2\nDOCUMENSO_WEBHOOK_SECRET=whsec_test_xxxxxxxxxxxx\nLOG_LEVEL=warn\n```\n\n### Step 3: Client Wrapper with Dev Helpers\n\n```typescript\n\u002F\u002F src\u002Fdocumenso\u002Fclient.ts\nimport { Documenso } from \"@documenso\u002Fsdk-typescript\";\n\nlet _client: Documenso | null = null;\n\nexport function getClient(): Documenso {\n  if (!_client) {\n    _client = new Documenso({\n      apiKey: process.env.DOCUMENSO_API_KEY!,\n      ...(process.env.DOCUMENSO_BASE_URL && {\n        serverURL: process.env.DOCUMENSO_BASE_URL,\n      }),\n    });\n  }\n  return _client;\n}\n\n\u002F\u002F Dev helper: list recent documents for debugging\nexport async function listRecentDocs(limit = 5) {\n  const client = getClient();\n  const { documents } = await client.documents.findV0({\n    page: 1,\n    perPage: limit,\n    orderByColumn: \"createdAt\",\n    orderByDirection: \"desc\",\n  });\n  return documents;\n}\n```\n\n### Step 4: Self-Hosted Local Documenso (Docker)\n\n```bash\n# Pull the official Documenso Docker image\ndocker pull documenso\u002Fdocumenso:latest\n\n# Create docker-compose.local.yml\n```\n\n```yaml\n# docker-compose.local.yml\nservices:\n  documenso:\n    image: documenso\u002Fdocumenso:latest\n    ports:\n      - \"3000:3000\"\n    environment:\n      - NEXTAUTH_URL=http:\u002F\u002Flocalhost:3000\n      - NEXTAUTH_SECRET=local-dev-secret-change-me\n      - NEXT_PRIVATE_ENCRYPTION_KEY=local-encryption-key\n      - NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=local-secondary-key\n      - NEXT_PUBLIC_WEBAPP_URL=http:\u002F\u002Flocalhost:3000\n      - NEXT_PRIVATE_DATABASE_URL=postgresql:\u002F\u002Fdocumenso:password@db:5432\u002Fdocumenso\n      - NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql:\u002F\u002Fdocumenso:password@db:5432\u002Fdocumenso\n      - NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth\n      - NEXT_PRIVATE_SMTP_HOST=mailhog\n      - NEXT_PRIVATE_SMTP_PORT=1025\n    depends_on:\n      - db\n      - mailhog\n\n  db:\n    image: postgres:16-alpine\n    environment:\n      POSTGRES_USER: documenso\n      POSTGRES_PASSWORD: password\n      POSTGRES_DB: documenso\n    volumes:\n      - pgdata:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n\n  mailhog:\n    image: mailhog\u002Fmailhog\n    ports:\n      - \"8025:8025\"  # Web UI for email inspection\n      - \"1025:1025\"\n\nvolumes:\n  pgdata:\n```\n\n```bash\ndocker compose -f docker-compose.local.yml up -d\n# Documenso at http:\u002F\u002Flocalhost:3000\n# MailHog at http:\u002F\u002Flocalhost:8025 (view sent emails)\n```\n\n**.env.local (for self-hosted dev):**\n\n```bash\nDOCUMENSO_API_KEY=api_local_xxxxxxxxxxxx\nDOCUMENSO_BASE_URL=http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fv2\n```\n\n### Step 5: Quick Verification Script\n\n```typescript\n\u002F\u002F scripts\u002Fverify-connection.ts\nimport { getClient } from \"..\u002Fsrc\u002Fdocumenso\u002Fclient\";\n\nasync function verify() {\n  const client = getClient();\n  try {\n    const { documents } = await client.documents.findV0({ page: 1, perPage: 1 });\n    console.log(\"Connection OK\");\n    console.log(`Documents accessible: ${documents.length >= 0 ? \"yes\" : \"no\"}`);\n  } catch (err: any) {\n    console.error(`Connection FAILED: ${err.message}`);\n    if (err.statusCode === 401) console.error(\"Check DOCUMENSO_API_KEY\");\n    process.exit(1);\n  }\n}\nverify();\n```\n\n### Step 6: Test Cleanup Script\n\n```typescript\n\u002F\u002F scripts\u002Fcleanup-test-docs.ts\nimport { getClient } from \"..\u002Fsrc\u002Fdocumenso\u002Fclient\";\n\nasync function cleanup() {\n  const client = getClient();\n  const { documents } = await client.documents.findV0({ page: 1, perPage: 100 });\n\n  const testDocs = documents.filter((d: any) =>\n    d.title.startsWith(\"[TEST]\") || d.title.startsWith(\"Hello World\")\n  );\n\n  for (const doc of testDocs) {\n    if (doc.status === \"DRAFT\") {\n      await client.documents.deleteV0(doc.id);\n      console.log(`Deleted: ${doc.title} (${doc.id})`);\n    } else {\n      console.log(`Skipped (${doc.status}): ${doc.title}`);\n    }\n  }\n  console.log(`Cleaned up ${testDocs.filter((d: any) => d.status === \"DRAFT\").length} test docs`);\n}\ncleanup();\n```\n\n### Step 7: Development Scripts (package.json)\n\n```json\n{\n  \"scripts\": {\n    \"dev:verify\": \"tsx scripts\u002Fverify-connection.ts\",\n    \"dev:test-doc\": \"tsx scripts\u002Fcreate-test-doc.ts\",\n    \"dev:cleanup\": \"tsx scripts\u002Fcleanup-test-docs.ts\",\n    \"dev:local\": \"docker compose -f docker-compose.local.yml up -d\",\n    \"dev:local:stop\": \"docker compose -f docker-compose.local.yml down\",\n    \"test:integration\": \"vitest run tests\u002Fintegration\u002F\"\n  }\n}\n```\n\n## Error Handling\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| `ECONNREFUSED localhost:3000` | Docker not running | Run `docker compose up -d` |\n| `401 on staging` | Wrong API key for env | Check `.env.development` key matches staging |\n| Stale test data | Tests didn't clean up | Run `npm run dev:cleanup` |\n| Rate limited in tests | Too many requests | Add `await delay(500)` between API calls |\n| Emails not arriving | SMTP misconfigured | Check MailHog at `localhost:8025` |\n\n## Resources\n\n- [Documenso Self-Hosting](https:\u002F\u002Fdocs.documenso.com\u002Fdevelopers\u002Fself-hosting\u002Fhow-to)\n- [Developer Quickstart](https:\u002F\u002Fdocs.documenso.com\u002Fdocs\u002Fdevelopers\u002Flocal-development\u002Fquickstart)\n- [Environment Variables Reference](https:\u002F\u002Fdocs.documenso.com\u002Fdocs\u002Fself-hosting\u002Fconfiguration\u002Fenvironment)\n- [MailHog](https:\u002F\u002Fgithub.com\u002Fmailhog\u002FMailHog)\n\n## Next Steps\n\nApply patterns in `documenso-sdk-patterns` for production-ready code structure.\n\n",{"name":5,"tags":55,"author":57,"license":15,"version":58,"description":59,"allowed-tools":60,"compatible-with":61},[56,31,49,48],"saas","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Set up local development environment and testing workflow for Documenso.\nUse when configuring dev environment, setting up test workflows,\nor establishing rapid iteration patterns with Documenso.\nTrigger with phrases like \"documenso local dev\", \"documenso development\",\n\"test documenso locally\", \"documenso dev environment\".\n","Read, Write, Edit, Bash(npm:*), Bash(docker:*), Bash(node:*)","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fdocumenso-local-dev-loop",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":72,"prompt":82,"zipAvailable":83},[73,76,79],{"tool":74,"command":75},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill documenso-local-dev-loop",{"tool":77,"command":78},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill documenso-local-dev-loop",{"tool":80,"command":81},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill documenso-local-dev-loop","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fdocumenso-local-dev-loop\u002FSKILL.md",true,[],[86,96,106,115,121,128],{"skillNo":87,"name":88,"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":89,"categories":90,"keywords":92,"publishedAt":50},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[91],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[93,94,95],"model","model hierarchy","model hierarchy skill",{"skillNo":97,"name":98,"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":99,"categories":100,"keywords":102,"publishedAt":50},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[101],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[103,104,105],"MCP","zoom","zoom mcp",{"skillNo":107,"name":108,"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":109,"categories":110,"keywords":111,"publishedAt":50},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[112,113,114,104],"sdk","zoom apps sdk","apps",{"skillNo":116,"name":117,"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":118,"categories":119,"keywords":120,"publishedAt":50},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[117],{"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":127,"publishedAt":50},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[126],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[123],{"skillNo":129,"name":130,"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":131,"categories":132,"keywords":133,"publishedAt":50},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[130]]