[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F9DPZ03JS5K31VE1QK9XVS":3,"skill-same:01M6F9DPZ03JS5K31VE1QK9XVS":82},{"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":59,"commitSha":60,"skillDirectory":61,"forksCount":62,"repositoryHtmlUrl":63,"repositoryHomepageUrl":64,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":66,"updatedAt":67,"install":68,"resources":81},"01M6F9DPZ03JS5K31VE1QK9XVS","customerio-deploy-pipeline",null,"Deploy Customer.io integrations to production cloud platforms.\nUse when deploying to Cloud Run, Vercel, AWS Lambda, or Kubernetes\nwith proper secrets management and health checks.\nTrigger: \"deploy customer.io\", \"customer.io cloud run\",\n\"customer.io kubernetes\", \"customer.io lambda\", \"customer.io vercel\".","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\u002Fcustomerio-deploy-pipeline\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"deploy","deploy pipeline","customerio deploy pipeline","pipeline","secrets","customer-io","io","aws lambda","edit","write","read","deploying to cloud","Bash","openclaw","secrets management","lambda","kubectl","code","run","customer","2026-11-10 10:12:30",false,"---\nname: customerio-deploy-pipeline\ndescription: |\n  Deploy Customer.io integrations to production cloud platforms.\n  Use when deploying to Cloud Run, Vercel, AWS Lambda, or Kubernetes\n  with proper secrets management and health checks.\n  Trigger: \"deploy customer.io\", \"customer.io cloud run\",\n  \"customer.io kubernetes\", \"customer.io lambda\", \"customer.io vercel\".\nallowed-tools: Read, Write, Edit, Bash(npm:*), Bash(gcloud:*), Bash(kubectl:*), Glob, Grep\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\ntags: [saas, customer-io, deployment, cloud-run, kubernetes]\n\n---\n# Customer.io Deploy Pipeline\n\n## Overview\n\nDeploy Customer.io integrations to production: GCP Cloud Run with Secret Manager, Vercel serverless functions, AWS Lambda with SSM, Kubernetes with external secrets, plus health check endpoints and blue-green deployment scripts.\n\n## Prerequisites\n\n- CI\u002FCD pipeline configured (see `customerio-ci-integration`)\n- Cloud platform credentials and access\n- Production Customer.io credentials in a secrets manager\n\n## Instructions\n\n### Step 1: Deploy to Google Cloud Run\n\n```yaml\n# .github\u002Fworkflows\u002Fdeploy-cloud-run.yml\nname: Deploy to Cloud Run\non:\n  push:\n    branches: [main]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write  # Required for Workload Identity Federation\n    steps:\n      - uses: actions\u002Fcheckout@v4\n\n      - id: auth\n        uses: google-github-actions\u002Fauth@v2\n        with:\n          workload_identity_provider: ${{ secrets.WIF_PROVIDER }}\n          service_account: ${{ secrets.WIF_SA }}\n\n      - uses: google-github-actions\u002Fsetup-gcloud@v2\n\n      - name: Build and push\n        run: |\n          gcloud builds submit --tag gcr.io\u002F${{ secrets.GCP_PROJECT }}\u002Fcio-service\n\n      - name: Deploy\n        run: |\n          gcloud run deploy cio-service \\\n            --image gcr.io\u002F${{ secrets.GCP_PROJECT }}\u002Fcio-service \\\n            --region us-central1 \\\n            --set-secrets \"CUSTOMERIO_SITE_ID=cio-site-id:latest,\\\n              CUSTOMERIO_TRACK_API_KEY=cio-track-key:latest,\\\n              CUSTOMERIO_APP_API_KEY=cio-app-key:latest\" \\\n            --set-env-vars \"CUSTOMERIO_REGION=us,NODE_ENV=production\" \\\n            --min-instances 1 \\\n            --max-instances 10 \\\n            --memory 512Mi \\\n            --cpu 1 \\\n            --allow-unauthenticated\n```\n\n### Step 2: Health Check Endpoint\n\n```typescript\n\u002F\u002F routes\u002Fhealth.ts\nimport { TrackClient, RegionUS } from \"customerio-node\";\nimport { Router } from \"express\";\n\nconst router = Router();\n\nrouter.get(\"\u002Fhealth\", async (_req, res) => {\n  const checks: Record\u003Cstring, { status: string; latency_ms?: number }> = {};\n\n  \u002F\u002F Check Track API\n  const cio = new TrackClient(\n    process.env.CUSTOMERIO_SITE_ID!,\n    process.env.CUSTOMERIO_TRACK_API_KEY!,\n    { region: RegionUS }\n  );\n\n  const start = Date.now();\n  try {\n    await cio.identify(\"health-check\", {\n      email: \"health@internal.example.com\",\n      _health_check: true,\n    });\n    checks.track_api = { status: \"ok\", latency_ms: Date.now() - start };\n  } catch (err: any) {\n    checks.track_api = { status: `error: ${err.statusCode}` };\n  }\n\n  const allOk = Object.values(checks).every((c) => c.status === \"ok\");\n\n  res.status(allOk ? 200 : 503).json({\n    status: allOk ? \"healthy\" : \"degraded\",\n    checks,\n    version: process.env.npm_package_version ?? \"unknown\",\n    uptime_seconds: Math.floor(process.uptime()),\n    timestamp: new Date().toISOString(),\n  });\n});\n\nexport default router;\n```\n\n### Step 3: Vercel Serverless Functions\n\n```typescript\n\u002F\u002F api\u002Fcustomerio\u002Fidentify.ts (Vercel serverless function)\nimport type { VercelRequest, VercelResponse } from \"@vercel\u002Fnode\";\nimport { TrackClient, RegionUS } from \"customerio-node\";\n\nconst cio = new TrackClient(\n  process.env.CUSTOMERIO_SITE_ID!,\n  process.env.CUSTOMERIO_TRACK_API_KEY!,\n  { region: RegionUS }\n);\n\nexport default async function handler(req: VercelRequest, res: VercelResponse) {\n  if (req.method !== \"POST\") {\n    return res.status(405).json({ error: \"Method not allowed\" });\n  }\n\n  const { userId, attributes } = req.body;\n  if (!userId || !attributes?.email) {\n    return res.status(400).json({ error: \"userId and attributes.email required\" });\n  }\n\n  try {\n    await cio.identify(userId, {\n      ...attributes,\n      last_seen_at: Math.floor(Date.now() \u002F 1000),\n    });\n    return res.status(200).json({ success: true });\n  } catch (err: any) {\n    return res.status(err.statusCode ?? 500).json({ error: err.message });\n  }\n}\n```\n\n### Step 4: Kubernetes Deployment\n\n```yaml\n# k8s\u002Fcustomerio-service.yaml\napiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: customerio-service\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: customerio-service\n  template:\n    metadata:\n      labels:\n        app: customerio-service\n    spec:\n      containers:\n        - name: app\n          image: gcr.io\u002Fmy-project\u002Fcio-service:latest\n          ports:\n            - containerPort: 3000\n          env:\n            - name: CUSTOMERIO_SITE_ID\n              valueFrom:\n                secretKeyRef:\n                  name: customerio-secrets\n                  key: site-id\n            - name: CUSTOMERIO_TRACK_API_KEY\n              valueFrom:\n                secretKeyRef:\n                  name: customerio-secrets\n                  key: track-api-key\n            - name: CUSTOMERIO_APP_API_KEY\n              valueFrom:\n                secretKeyRef:\n                  name: customerio-secrets\n                  key: app-api-key\n            - name: CUSTOMERIO_REGION\n              value: \"us\"\n            - name: NODE_ENV\n              value: \"production\"\n          resources:\n            requests:\n              cpu: 100m\n              memory: 256Mi\n            limits:\n              cpu: 500m\n              memory: 512Mi\n          readinessProbe:\n            httpGet:\n              path: \u002Fhealth\n              port: 3000\n            initialDelaySeconds: 5\n            periodSeconds: 10\n          livenessProbe:\n            httpGet:\n              path: \u002Fhealth\n              port: 3000\n            initialDelaySeconds: 15\n            periodSeconds: 30\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: customerio-service\nspec:\n  selector:\n    app: customerio-service\n  ports:\n    - port: 80\n      targetPort: 3000\n```\n\n### Step 5: Blue-Green Deployment\n\n```bash\n#!\u002Fusr\u002Fbin\u002Fenv bash\nset -euo pipefail\n# scripts\u002Fblue-green-deploy.sh\n\nSERVICE=\"cio-service\"\nREGION=\"us-central1\"\nIMAGE=\"gcr.io\u002F${GCP_PROJECT}\u002F${SERVICE}:${COMMIT_SHA}\"\n\necho \"=== Blue-Green Deploy: ${SERVICE} ===\"\n\n# 1. Deploy with no traffic\ngcloud run deploy \"${SERVICE}\" \\\n  --image \"${IMAGE}\" \\\n  --region \"${REGION}\" \\\n  --no-traffic \\\n  --tag \"canary\"\n\necho \"Deployed canary. Running health check...\"\n\n# 2. Health check on canary\nCANARY_URL=$(gcloud run services describe \"${SERVICE}\" \\\n  --region \"${REGION}\" --format 'value(status.url)' \\\n  | sed 's|https:\u002F\u002F|https:\u002F\u002Fcanary---|')\n\nHEALTH=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \"${CANARY_URL}\u002Fhealth\")\nif [ \"${HEALTH}\" != \"200\" ]; then\n  echo \"FAIL: Health check returned ${HEALTH}. Aborting.\"\n  exit 1\nfi\n\n# 3. Shift traffic: 10% → 50% → 100%\nfor pct in 10 50 100; do\n  echo \"Shifting ${pct}% traffic to canary...\"\n  gcloud run services update-traffic \"${SERVICE}\" \\\n    --region \"${REGION}\" \\\n    --to-tags \"canary=${pct}\"\n  sleep 30\ndone\n\necho \"Deploy complete. 100% traffic on new revision.\"\n```\n\n## Deployment Checklist\n\n- [ ] Production secrets in secrets manager (not env files)\n- [ ] Health check endpoint responds 200\n- [ ] Readiness and liveness probes configured\n- [ ] Resource limits set (CPU, memory)\n- [ ] Min instances > 0 (avoid cold starts)\n- [ ] Blue-green or canary deployment configured\n- [ ] Rollback procedure documented\n- [ ] Post-deploy smoke test automated\n\n## Error Handling\n\n| Issue | Solution |\n|-------|----------|\n| Secret not found | Verify secret name in secrets manager |\n| Health check timeout | Increase initialDelaySeconds, check CIO connectivity |\n| Cold start latency | Set `--min-instances 1` (Cloud Run) or keep-alive |\n| Memory OOM | Increase memory limits, check for event queue buildup |\n\n## Resources\n\n- [Cloud Run Documentation](https:\u002F\u002Fcloud.google.com\u002Frun\u002Fdocs)\n- [Vercel Serverless Functions](https:\u002F\u002Fvercel.com\u002Fdocs\u002Ffunctions)\n- [Kubernetes Secrets](https:\u002F\u002Fkubernetes.io\u002Fdocs\u002Fconcepts\u002Fconfiguration\u002Fsecret\u002F)\n\n## Next Steps\n\nAfter deployment, proceed to `customerio-webhooks-events` for webhook handling.\n\n","# Customer.io Deploy Pipeline\n\n## Overview\n\nDeploy Customer.io integrations to production: GCP Cloud Run with Secret Manager, Vercel serverless functions, AWS Lambda with SSM, Kubernetes with external secrets, plus health check endpoints and blue-green deployment scripts.\n\n## Prerequisites\n\n- CI\u002FCD pipeline configured (see `customerio-ci-integration`)\n- Cloud platform credentials and access\n- Production Customer.io credentials in a secrets manager\n\n## Instructions\n\n### Step 1: Deploy to Google Cloud Run\n\n```yaml\n# .github\u002Fworkflows\u002Fdeploy-cloud-run.yml\nname: Deploy to Cloud Run\non:\n  push:\n    branches: [main]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write  # Required for Workload Identity Federation\n    steps:\n      - uses: actions\u002Fcheckout@v4\n\n      - id: auth\n        uses: google-github-actions\u002Fauth@v2\n        with:\n          workload_identity_provider: ${{ secrets.WIF_PROVIDER }}\n          service_account: ${{ secrets.WIF_SA }}\n\n      - uses: google-github-actions\u002Fsetup-gcloud@v2\n\n      - name: Build and push\n        run: |\n          gcloud builds submit --tag gcr.io\u002F${{ secrets.GCP_PROJECT }}\u002Fcio-service\n\n      - name: Deploy\n        run: |\n          gcloud run deploy cio-service \\\n            --image gcr.io\u002F${{ secrets.GCP_PROJECT }}\u002Fcio-service \\\n            --region us-central1 \\\n            --set-secrets \"CUSTOMERIO_SITE_ID=cio-site-id:latest,\\\n              CUSTOMERIO_TRACK_API_KEY=cio-track-key:latest,\\\n              CUSTOMERIO_APP_API_KEY=cio-app-key:latest\" \\\n            --set-env-vars \"CUSTOMERIO_REGION=us,NODE_ENV=production\" \\\n            --min-instances 1 \\\n            --max-instances 10 \\\n            --memory 512Mi \\\n            --cpu 1 \\\n            --allow-unauthenticated\n```\n\n### Step 2: Health Check Endpoint\n\n```typescript\n\u002F\u002F routes\u002Fhealth.ts\nimport { TrackClient, RegionUS } from \"customerio-node\";\nimport { Router } from \"express\";\n\nconst router = Router();\n\nrouter.get(\"\u002Fhealth\", async (_req, res) => {\n  const checks: Record\u003Cstring, { status: string; latency_ms?: number }> = {};\n\n  \u002F\u002F Check Track API\n  const cio = new TrackClient(\n    process.env.CUSTOMERIO_SITE_ID!,\n    process.env.CUSTOMERIO_TRACK_API_KEY!,\n    { region: RegionUS }\n  );\n\n  const start = Date.now();\n  try {\n    await cio.identify(\"health-check\", {\n      email: \"health@internal.example.com\",\n      _health_check: true,\n    });\n    checks.track_api = { status: \"ok\", latency_ms: Date.now() - start };\n  } catch (err: any) {\n    checks.track_api = { status: `error: ${err.statusCode}` };\n  }\n\n  const allOk = Object.values(checks).every((c) => c.status === \"ok\");\n\n  res.status(allOk ? 200 : 503).json({\n    status: allOk ? \"healthy\" : \"degraded\",\n    checks,\n    version: process.env.npm_package_version ?? \"unknown\",\n    uptime_seconds: Math.floor(process.uptime()),\n    timestamp: new Date().toISOString(),\n  });\n});\n\nexport default router;\n```\n\n### Step 3: Vercel Serverless Functions\n\n```typescript\n\u002F\u002F api\u002Fcustomerio\u002Fidentify.ts (Vercel serverless function)\nimport type { VercelRequest, VercelResponse } from \"@vercel\u002Fnode\";\nimport { TrackClient, RegionUS } from \"customerio-node\";\n\nconst cio = new TrackClient(\n  process.env.CUSTOMERIO_SITE_ID!,\n  process.env.CUSTOMERIO_TRACK_API_KEY!,\n  { region: RegionUS }\n);\n\nexport default async function handler(req: VercelRequest, res: VercelResponse) {\n  if (req.method !== \"POST\") {\n    return res.status(405).json({ error: \"Method not allowed\" });\n  }\n\n  const { userId, attributes } = req.body;\n  if (!userId || !attributes?.email) {\n    return res.status(400).json({ error: \"userId and attributes.email required\" });\n  }\n\n  try {\n    await cio.identify(userId, {\n      ...attributes,\n      last_seen_at: Math.floor(Date.now() \u002F 1000),\n    });\n    return res.status(200).json({ success: true });\n  } catch (err: any) {\n    return res.status(err.statusCode ?? 500).json({ error: err.message });\n  }\n}\n```\n\n### Step 4: Kubernetes Deployment\n\n```yaml\n# k8s\u002Fcustomerio-service.yaml\napiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: customerio-service\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: customerio-service\n  template:\n    metadata:\n      labels:\n        app: customerio-service\n    spec:\n      containers:\n        - name: app\n          image: gcr.io\u002Fmy-project\u002Fcio-service:latest\n          ports:\n            - containerPort: 3000\n          env:\n            - name: CUSTOMERIO_SITE_ID\n              valueFrom:\n                secretKeyRef:\n                  name: customerio-secrets\n                  key: site-id\n            - name: CUSTOMERIO_TRACK_API_KEY\n              valueFrom:\n                secretKeyRef:\n                  name: customerio-secrets\n                  key: track-api-key\n            - name: CUSTOMERIO_APP_API_KEY\n              valueFrom:\n                secretKeyRef:\n                  name: customerio-secrets\n                  key: app-api-key\n            - name: CUSTOMERIO_REGION\n              value: \"us\"\n            - name: NODE_ENV\n              value: \"production\"\n          resources:\n            requests:\n              cpu: 100m\n              memory: 256Mi\n            limits:\n              cpu: 500m\n              memory: 512Mi\n          readinessProbe:\n            httpGet:\n              path: \u002Fhealth\n              port: 3000\n            initialDelaySeconds: 5\n            periodSeconds: 10\n          livenessProbe:\n            httpGet:\n              path: \u002Fhealth\n              port: 3000\n            initialDelaySeconds: 15\n            periodSeconds: 30\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: customerio-service\nspec:\n  selector:\n    app: customerio-service\n  ports:\n    - port: 80\n      targetPort: 3000\n```\n\n### Step 5: Blue-Green Deployment\n\n```bash\n#!\u002Fusr\u002Fbin\u002Fenv bash\nset -euo pipefail\n# scripts\u002Fblue-green-deploy.sh\n\nSERVICE=\"cio-service\"\nREGION=\"us-central1\"\nIMAGE=\"gcr.io\u002F${GCP_PROJECT}\u002F${SERVICE}:${COMMIT_SHA}\"\n\necho \"=== Blue-Green Deploy: ${SERVICE} ===\"\n\n# 1. Deploy with no traffic\ngcloud run deploy \"${SERVICE}\" \\\n  --image \"${IMAGE}\" \\\n  --region \"${REGION}\" \\\n  --no-traffic \\\n  --tag \"canary\"\n\necho \"Deployed canary. Running health check...\"\n\n# 2. Health check on canary\nCANARY_URL=$(gcloud run services describe \"${SERVICE}\" \\\n  --region \"${REGION}\" --format 'value(status.url)' \\\n  | sed 's|https:\u002F\u002F|https:\u002F\u002Fcanary---|')\n\nHEALTH=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \"${CANARY_URL}\u002Fhealth\")\nif [ \"${HEALTH}\" != \"200\" ]; then\n  echo \"FAIL: Health check returned ${HEALTH}. Aborting.\"\n  exit 1\nfi\n\n# 3. Shift traffic: 10% → 50% → 100%\nfor pct in 10 50 100; do\n  echo \"Shifting ${pct}% traffic to canary...\"\n  gcloud run services update-traffic \"${SERVICE}\" \\\n    --region \"${REGION}\" \\\n    --to-tags \"canary=${pct}\"\n  sleep 30\ndone\n\necho \"Deploy complete. 100% traffic on new revision.\"\n```\n\n## Deployment Checklist\n\n- [ ] Production secrets in secrets manager (not env files)\n- [ ] Health check endpoint responds 200\n- [ ] Readiness and liveness probes configured\n- [ ] Resource limits set (CPU, memory)\n- [ ] Min instances > 0 (avoid cold starts)\n- [ ] Blue-green or canary deployment configured\n- [ ] Rollback procedure documented\n- [ ] Post-deploy smoke test automated\n\n## Error Handling\n\n| Issue | Solution |\n|-------|----------|\n| Secret not found | Verify secret name in secrets manager |\n| Health check timeout | Increase initialDelaySeconds, check CIO connectivity |\n| Cold start latency | Set `--min-instances 1` (Cloud Run) or keep-alive |\n| Memory OOM | Increase memory limits, check for event queue buildup |\n\n## Resources\n\n- [Cloud Run Documentation](https:\u002F\u002Fcloud.google.com\u002Frun\u002Fdocs)\n- [Vercel Serverless Functions](https:\u002F\u002Fvercel.com\u002Fdocs\u002Ffunctions)\n- [Kubernetes Secrets](https:\u002F\u002Fkubernetes.io\u002Fdocs\u002Fconcepts\u002Fconfiguration\u002Fsecret\u002F)\n\n## Next Steps\n\nAfter deployment, proceed to `customerio-webhooks-events` for webhook handling.\n\n",{"name":5,"tags":49,"author":54,"license":15,"version":55,"description":56,"allowed-tools":57,"compatible-with":58},[50,29,51,52,53],"saas","deployment","cloud-run","kubernetes","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Deploy Customer.io integrations to production cloud platforms.\nUse when deploying to Cloud Run, Vercel, AWS Lambda, or Kubernetes\nwith proper secrets management and health checks.\nTrigger: \"deploy customer.io\", \"customer.io cloud run\",\n\"customer.io kubernetes\", \"customer.io lambda\", \"customer.io vercel\".\n","Read, Write, Edit, Bash(npm:*), Bash(gcloud:*), Bash(kubectl:*), Glob, Grep","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fcustomerio-deploy-pipeline",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":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill customerio-deploy-pipeline",{"tool":74,"command":75},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill customerio-deploy-pipeline",{"tool":77,"command":78},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill customerio-deploy-pipeline","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fcustomerio-deploy-pipeline\u002FSKILL.md",true,[],[83,95,105,114,120,127],{"skillNo":84,"name":85,"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":86,"categories":87,"keywords":91,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[88],{"categoryNo":89,"categoryName":90,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[92,93,94],"model","model hierarchy","model hierarchy skill",{"skillNo":96,"name":97,"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":98,"categories":99,"keywords":101,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[100],{"categoryNo":89,"categoryName":90,"taxonomyType":21,"taxonomyTypeDesc":22},[102,103,104],"MCP","zoom","zoom mcp",{"skillNo":106,"name":107,"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":108,"categories":109,"keywords":110,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[111,112,113,103],"sdk","zoom apps sdk","apps",{"skillNo":115,"name":116,"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":117,"categories":118,"keywords":119,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[116],{"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":126,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[125],{"categoryNo":89,"categoryName":90,"taxonomyType":21,"taxonomyTypeDesc":22},[122],{"skillNo":128,"name":129,"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":130,"categories":131,"keywords":132,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[129]]