[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F9DJZ1ZGCY2X848MPJC2PD":3,"skill-same:01M6F9DJZ1ZGCY2X848MPJC2PD":79},{"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":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M6F9DJZ1ZGCY2X848MPJC2PD","customerio-debug-bundle",null,"Collect Customer.io debug evidence for support tickets.\nUse when creating support requests, investigating delivery\nfailures, or documenting integration issues.\nTrigger: \"customer.io debug\", \"customer.io support ticket\",\n\"collect customer.io logs\", \"customer.io diagnostics\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fcustomerio-debug-bundle\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],"customerio debug bundle","debug","bundle","Bash","customer-io","ticket","trigger","io","delivery","evidence","read","openclaw","logs","collect","issues","code","debugging","diagnostics","support","customer","2026-11-10 10:12:30",false,"---\nname: customerio-debug-bundle\ndescription: |\n  Collect Customer.io debug evidence for support tickets.\n  Use when creating support requests, investigating delivery\n  failures, or documenting integration issues.\n  Trigger: \"customer.io debug\", \"customer.io support ticket\",\n  \"collect customer.io logs\", \"customer.io diagnostics\".\nallowed-tools: Read, Grep, Bash(curl:*), Bash(npx:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\ntags: [saas, customer-io, debugging, support]\n\n---\n# Customer.io Debug Bundle\n\n## Current State\n!`node --version 2>\u002Fdev\u002Fnull || echo 'Node.js: not installed'`\n!`npm list customerio-node 2>\u002Fdev\u002Fnull | grep customerio || echo 'customerio-node: not installed'`\n\n## Overview\n\nCollect a comprehensive debug bundle for Customer.io support tickets: API connectivity tests, user profile inspection, SDK version info, environment validation, and a structured support report.\n\n## Prerequisites\n\n- Customer.io API credentials configured\n- `curl` available for API tests\n- User ID or email of the affected user\u002Fdelivery\n\n## Instructions\n\n### Step 1: API Connectivity Diagnostic\n\n```bash\n#!\u002Fusr\u002Fbin\u002Fenv bash\nset -euo pipefail\n\necho \"=== Customer.io Debug Bundle ===\"\necho \"Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)\"\necho \"\"\n\n# 1. Check Customer.io status\necho \"--- Platform Status ---\"\ncurl -s \"https:\u002F\u002Fstatus.customer.io\u002Fapi\u002Fv2\u002Fstatus.json\" \\\n  | python3 -c \"import sys,json; d=json.load(sys.stdin); print(f'Status: {d[\\\"status\\\"][\\\"description\\\"]}')\" \\\n  2>\u002Fdev\u002Fnull || echo \"Could not reach status page\"\n\n# 2. Test Track API authentication\necho \"\"\necho \"--- Track API Auth ---\"\nTRACK_RESULT=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \\\n  -u \"${CUSTOMERIO_SITE_ID}:${CUSTOMERIO_TRACK_API_KEY}\" \\\n  -X PUT \"https:\u002F\u002Ftrack.customer.io\u002Fapi\u002Fv1\u002Fcustomers\u002Fdebug-test-$(date +%s)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"email\":\"debug-test@example.com\"}')\necho \"Track API: HTTP ${TRACK_RESULT}\"\n\n# 3. Test App API authentication\necho \"\"\necho \"--- App API Auth ---\"\nAPP_RESULT=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \\\n  -H \"Authorization: Bearer ${CUSTOMERIO_APP_API_KEY}\" \\\n  \"https:\u002F\u002Fapi.customer.io\u002Fv1\u002Fcampaigns\")\necho \"App API: HTTP ${APP_RESULT}\"\n\n# 4. DNS and latency\necho \"\"\necho \"--- Network Diagnostics ---\"\nfor host in track.customer.io api.customer.io; do\n  LATENCY=$(curl -s -o \u002Fdev\u002Fnull -w \"%{time_total}\" \"https:\u002F\u002F${host}\")\n  echo \"${host}: ${LATENCY}s\"\ndone\n```\n\n### Step 2: User Profile Investigation\n\n```typescript\n\u002F\u002F scripts\u002Fdebug-user.ts\n\u002F\u002F Investigate a specific user's state in Customer.io\nimport { TrackClient, APIClient, RegionUS } from \"customerio-node\";\n\nasync function investigateUser(userId: string) {\n  const cio = new TrackClient(\n    process.env.CUSTOMERIO_SITE_ID!,\n    process.env.CUSTOMERIO_TRACK_API_KEY!,\n    { region: RegionUS }\n  );\n\n  console.log(`\\n=== User Investigation: ${userId} ===\\n`);\n\n  \u002F\u002F Test if we can identify (update) the user — confirms they exist\n  try {\n    await cio.identify(userId, {\n      _debug_checked_at: Math.floor(Date.now() \u002F 1000),\n    });\n    console.log(\"Profile: EXISTS (identify succeeded)\");\n  } catch (err: any) {\n    console.log(`Profile: ERROR (${err.statusCode}: ${err.message})`);\n  }\n\n  \u002F\u002F Test if we can track an event on the user\n  try {\n    await cio.track(userId, {\n      name: \"debug_check\",\n      data: { checked_at: new Date().toISOString() },\n    });\n    console.log(\"Event tracking: WORKING\");\n  } catch (err: any) {\n    console.log(`Event tracking: ERROR (${err.statusCode}: ${err.message})`);\n  }\n\n  \u002F\u002F Check suppression status by trying to unsuppress\n  \u002F\u002F (If user is not suppressed, this is a no-op)\n  console.log(\"\\nNote: Check suppression status in Customer.io dashboard:\");\n  console.log(`  People > Search \"${userId}\" > check Suppressed badge`);\n  console.log(\"  Also check Activity tab for bounce\u002Fcomplaint events\");\n}\n\nconst userId = process.argv[2];\nif (!userId) {\n  console.error(\"Usage: npx tsx scripts\u002Fdebug-user.ts \u003Cuser-id>\");\n  process.exit(1);\n}\ninvestigateUser(userId);\n```\n\n### Step 3: SDK and Environment Info\n\n```typescript\n\u002F\u002F scripts\u002Fdebug-env.ts\nimport { readFileSync } from \"fs\";\n\nfunction collectEnvInfo() {\n  const report: Record\u003Cstring, string> = {};\n\n  \u002F\u002F Node.js version\n  report[\"node_version\"] = process.version;\n  report[\"platform\"] = `${process.platform} ${process.arch}`;\n\n  \u002F\u002F SDK version\n  try {\n    const pkg = JSON.parse(\n      readFileSync(\"node_modules\u002Fcustomerio-node\u002Fpackage.json\", \"utf-8\")\n    );\n    report[\"customerio_node_version\"] = pkg.version;\n  } catch {\n    report[\"customerio_node_version\"] = \"NOT INSTALLED\";\n  }\n\n  \u002F\u002F Environment config (redacted)\n  report[\"site_id_set\"] = process.env.CUSTOMERIO_SITE_ID ? \"YES\" : \"NO\";\n  report[\"track_key_set\"] = process.env.CUSTOMERIO_TRACK_API_KEY ? \"YES\" : \"NO\";\n  report[\"app_key_set\"] = process.env.CUSTOMERIO_APP_API_KEY ? \"YES\" : \"NO\";\n  report[\"region\"] = process.env.CUSTOMERIO_REGION ?? \"us (default)\";\n\n  \u002F\u002F Redacted key prefix for identification\n  const siteId = process.env.CUSTOMERIO_SITE_ID ?? \"\";\n  report[\"site_id_prefix\"] = siteId.substring(0, 4) + \"...\";\n\n  console.log(\"\\n=== Environment Debug Info ===\\n\");\n  for (const [key, value] of Object.entries(report)) {\n    console.log(`${key}: ${value}`);\n  }\n}\n\ncollectEnvInfo();\n```\n\n### Step 4: Generate Support Report\n\n```typescript\n\u002F\u002F scripts\u002Fgenerate-support-report.ts\nfunction generateReport(issue: {\n  summary: string;\n  userId?: string;\n  deliveryId?: string;\n  errorCode?: number;\n  errorMessage?: string;\n  reproducible: boolean;\n  startedAt?: string;\n}) {\n  const report = `\n## Customer.io Support Report\nGenerated: ${new Date().toISOString()}\n\n### Issue Summary\n${issue.summary}\n\n### Affected Resources\n- User ID: ${issue.userId ?? \"N\u002FA\"}\n- Delivery ID: ${issue.deliveryId ?? \"N\u002FA\"}\n- Error Code: ${issue.errorCode ?? \"N\u002FA\"}\n- Error Message: ${issue.errorMessage ?? \"N\u002FA\"}\n\n### Reproduction\n- Reproducible: ${issue.reproducible ? \"Yes\" : \"Intermittent\"}\n- First observed: ${issue.startedAt ?? \"Unknown\"}\n\n### Environment\n- Node.js: ${process.version}\n- Region: ${process.env.CUSTOMERIO_REGION ?? \"us\"}\n- Site ID prefix: ${(process.env.CUSTOMERIO_SITE_ID ?? \"\").substring(0, 4)}...\n\n### Steps to Reproduce\n1. [Describe the action taken]\n2. [Describe the expected result]\n3. [Describe the actual result]\n\n### Attachments\n- [ ] Application logs (relevant time window)\n- [ ] API request\u002Fresponse captures\n- [ ] Screenshot of user profile in dashboard\n- [ ] Screenshot of campaign\u002Fbroadcast configuration\n`.trim();\n\n  console.log(report);\n}\n```\n\n### Step 5: Collect Application Logs\n\n```bash\n# Collect recent Customer.io related logs (adjust path for your setup)\n# Grep for CIO\u002Fcustomerio in your application logs\ngrep -i \"customer\\\\.io\\\\|customerio\\\\|cio_\" \u002Fvar\u002Flog\u002Fapp\u002F*.log \\\n  | tail -100 \\\n  > \u002Ftmp\u002Fcio-debug-logs.txt 2>\u002Fdev\u002Fnull\n\n# Or from Docker\ndocker logs your-app-container 2>&1 \\\n  | grep -i \"customer\\\\.io\\\\|customerio\\\\|cio_\" \\\n  | tail -100 \\\n  > \u002Ftmp\u002Fcio-debug-logs.txt\n\n# Redact sensitive data before sharing\nsed -i 's\u002F\\(api_key\\|apikey\\|secret\\)=[^&]*\u002F\\1=REDACTED\u002Fgi' \u002Ftmp\u002Fcio-debug-logs.txt\n```\n\n## Debug Checklist\n\n- [ ] Customer.io status page checked (https:\u002F\u002Fstatus.customer.io)\n- [ ] Track API auth verified (HTTP 200)\n- [ ] App API auth verified (HTTP 200)\n- [ ] User profile exists and has `email` attribute\n- [ ] User is not suppressed\n- [ ] SDK version documented\n- [ ] Region configuration correct (US vs EU)\n- [ ] Error logs collected and redacted\n- [ ] Reproduction steps documented\n\n## Error Handling\n\n| Issue | Solution |\n|-------|----------|\n| Status page unreachable | Check your network; try from a different network |\n| Both APIs return 401 | Credentials are wrong — regenerate in dashboard |\n| Track OK but App 401 | Using Track API key for App API — they're separate keys |\n| Logs contain PII | Run redaction script before sharing with support |\n\n## Resources\n\n- [Customer.io Support](https:\u002F\u002Fcustomer.io\u002Fcontact\u002F)\n- [Customer.io Community](https:\u002F\u002Fcommunity.customer.io\u002F)\n- [Status Page](https:\u002F\u002Fstatus.customer.io\u002F)\n\n## Next Steps\n\nAfter creating debug bundle, proceed to `customerio-rate-limits` to implement proper rate limiting.\n\n","# Customer.io Debug Bundle\n\n## Current State\n!`node --version 2>\u002Fdev\u002Fnull || echo 'Node.js: not installed'`\n!`npm list customerio-node 2>\u002Fdev\u002Fnull | grep customerio || echo 'customerio-node: not installed'`\n\n## Overview\n\nCollect a comprehensive debug bundle for Customer.io support tickets: API connectivity tests, user profile inspection, SDK version info, environment validation, and a structured support report.\n\n## Prerequisites\n\n- Customer.io API credentials configured\n- `curl` available for API tests\n- User ID or email of the affected user\u002Fdelivery\n\n## Instructions\n\n### Step 1: API Connectivity Diagnostic\n\n```bash\n#!\u002Fusr\u002Fbin\u002Fenv bash\nset -euo pipefail\n\necho \"=== Customer.io Debug Bundle ===\"\necho \"Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)\"\necho \"\"\n\n# 1. Check Customer.io status\necho \"--- Platform Status ---\"\ncurl -s \"https:\u002F\u002Fstatus.customer.io\u002Fapi\u002Fv2\u002Fstatus.json\" \\\n  | python3 -c \"import sys,json; d=json.load(sys.stdin); print(f'Status: {d[\\\"status\\\"][\\\"description\\\"]}')\" \\\n  2>\u002Fdev\u002Fnull || echo \"Could not reach status page\"\n\n# 2. Test Track API authentication\necho \"\"\necho \"--- Track API Auth ---\"\nTRACK_RESULT=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \\\n  -u \"${CUSTOMERIO_SITE_ID}:${CUSTOMERIO_TRACK_API_KEY}\" \\\n  -X PUT \"https:\u002F\u002Ftrack.customer.io\u002Fapi\u002Fv1\u002Fcustomers\u002Fdebug-test-$(date +%s)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"email\":\"debug-test@example.com\"}')\necho \"Track API: HTTP ${TRACK_RESULT}\"\n\n# 3. Test App API authentication\necho \"\"\necho \"--- App API Auth ---\"\nAPP_RESULT=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \\\n  -H \"Authorization: Bearer ${CUSTOMERIO_APP_API_KEY}\" \\\n  \"https:\u002F\u002Fapi.customer.io\u002Fv1\u002Fcampaigns\")\necho \"App API: HTTP ${APP_RESULT}\"\n\n# 4. DNS and latency\necho \"\"\necho \"--- Network Diagnostics ---\"\nfor host in track.customer.io api.customer.io; do\n  LATENCY=$(curl -s -o \u002Fdev\u002Fnull -w \"%{time_total}\" \"https:\u002F\u002F${host}\")\n  echo \"${host}: ${LATENCY}s\"\ndone\n```\n\n### Step 2: User Profile Investigation\n\n```typescript\n\u002F\u002F scripts\u002Fdebug-user.ts\n\u002F\u002F Investigate a specific user's state in Customer.io\nimport { TrackClient, APIClient, RegionUS } from \"customerio-node\";\n\nasync function investigateUser(userId: string) {\n  const cio = new TrackClient(\n    process.env.CUSTOMERIO_SITE_ID!,\n    process.env.CUSTOMERIO_TRACK_API_KEY!,\n    { region: RegionUS }\n  );\n\n  console.log(`\\n=== User Investigation: ${userId} ===\\n`);\n\n  \u002F\u002F Test if we can identify (update) the user — confirms they exist\n  try {\n    await cio.identify(userId, {\n      _debug_checked_at: Math.floor(Date.now() \u002F 1000),\n    });\n    console.log(\"Profile: EXISTS (identify succeeded)\");\n  } catch (err: any) {\n    console.log(`Profile: ERROR (${err.statusCode}: ${err.message})`);\n  }\n\n  \u002F\u002F Test if we can track an event on the user\n  try {\n    await cio.track(userId, {\n      name: \"debug_check\",\n      data: { checked_at: new Date().toISOString() },\n    });\n    console.log(\"Event tracking: WORKING\");\n  } catch (err: any) {\n    console.log(`Event tracking: ERROR (${err.statusCode}: ${err.message})`);\n  }\n\n  \u002F\u002F Check suppression status by trying to unsuppress\n  \u002F\u002F (If user is not suppressed, this is a no-op)\n  console.log(\"\\nNote: Check suppression status in Customer.io dashboard:\");\n  console.log(`  People > Search \"${userId}\" > check Suppressed badge`);\n  console.log(\"  Also check Activity tab for bounce\u002Fcomplaint events\");\n}\n\nconst userId = process.argv[2];\nif (!userId) {\n  console.error(\"Usage: npx tsx scripts\u002Fdebug-user.ts \u003Cuser-id>\");\n  process.exit(1);\n}\ninvestigateUser(userId);\n```\n\n### Step 3: SDK and Environment Info\n\n```typescript\n\u002F\u002F scripts\u002Fdebug-env.ts\nimport { readFileSync } from \"fs\";\n\nfunction collectEnvInfo() {\n  const report: Record\u003Cstring, string> = {};\n\n  \u002F\u002F Node.js version\n  report[\"node_version\"] = process.version;\n  report[\"platform\"] = `${process.platform} ${process.arch}`;\n\n  \u002F\u002F SDK version\n  try {\n    const pkg = JSON.parse(\n      readFileSync(\"node_modules\u002Fcustomerio-node\u002Fpackage.json\", \"utf-8\")\n    );\n    report[\"customerio_node_version\"] = pkg.version;\n  } catch {\n    report[\"customerio_node_version\"] = \"NOT INSTALLED\";\n  }\n\n  \u002F\u002F Environment config (redacted)\n  report[\"site_id_set\"] = process.env.CUSTOMERIO_SITE_ID ? \"YES\" : \"NO\";\n  report[\"track_key_set\"] = process.env.CUSTOMERIO_TRACK_API_KEY ? \"YES\" : \"NO\";\n  report[\"app_key_set\"] = process.env.CUSTOMERIO_APP_API_KEY ? \"YES\" : \"NO\";\n  report[\"region\"] = process.env.CUSTOMERIO_REGION ?? \"us (default)\";\n\n  \u002F\u002F Redacted key prefix for identification\n  const siteId = process.env.CUSTOMERIO_SITE_ID ?? \"\";\n  report[\"site_id_prefix\"] = siteId.substring(0, 4) + \"...\";\n\n  console.log(\"\\n=== Environment Debug Info ===\\n\");\n  for (const [key, value] of Object.entries(report)) {\n    console.log(`${key}: ${value}`);\n  }\n}\n\ncollectEnvInfo();\n```\n\n### Step 4: Generate Support Report\n\n```typescript\n\u002F\u002F scripts\u002Fgenerate-support-report.ts\nfunction generateReport(issue: {\n  summary: string;\n  userId?: string;\n  deliveryId?: string;\n  errorCode?: number;\n  errorMessage?: string;\n  reproducible: boolean;\n  startedAt?: string;\n}) {\n  const report = `\n## Customer.io Support Report\nGenerated: ${new Date().toISOString()}\n\n### Issue Summary\n${issue.summary}\n\n### Affected Resources\n- User ID: ${issue.userId ?? \"N\u002FA\"}\n- Delivery ID: ${issue.deliveryId ?? \"N\u002FA\"}\n- Error Code: ${issue.errorCode ?? \"N\u002FA\"}\n- Error Message: ${issue.errorMessage ?? \"N\u002FA\"}\n\n### Reproduction\n- Reproducible: ${issue.reproducible ? \"Yes\" : \"Intermittent\"}\n- First observed: ${issue.startedAt ?? \"Unknown\"}\n\n### Environment\n- Node.js: ${process.version}\n- Region: ${process.env.CUSTOMERIO_REGION ?? \"us\"}\n- Site ID prefix: ${(process.env.CUSTOMERIO_SITE_ID ?? \"\").substring(0, 4)}...\n\n### Steps to Reproduce\n1. [Describe the action taken]\n2. [Describe the expected result]\n3. [Describe the actual result]\n\n### Attachments\n- [ ] Application logs (relevant time window)\n- [ ] API request\u002Fresponse captures\n- [ ] Screenshot of user profile in dashboard\n- [ ] Screenshot of campaign\u002Fbroadcast configuration\n`.trim();\n\n  console.log(report);\n}\n```\n\n### Step 5: Collect Application Logs\n\n```bash\n# Collect recent Customer.io related logs (adjust path for your setup)\n# Grep for CIO\u002Fcustomerio in your application logs\ngrep -i \"customer\\\\.io\\\\|customerio\\\\|cio_\" \u002Fvar\u002Flog\u002Fapp\u002F*.log \\\n  | tail -100 \\\n  > \u002Ftmp\u002Fcio-debug-logs.txt 2>\u002Fdev\u002Fnull\n\n# Or from Docker\ndocker logs your-app-container 2>&1 \\\n  | grep -i \"customer\\\\.io\\\\|customerio\\\\|cio_\" \\\n  | tail -100 \\\n  > \u002Ftmp\u002Fcio-debug-logs.txt\n\n# Redact sensitive data before sharing\nsed -i 's\u002F\\(api_key\\|apikey\\|secret\\)=[^&]*\u002F\\1=REDACTED\u002Fgi' \u002Ftmp\u002Fcio-debug-logs.txt\n```\n\n## Debug Checklist\n\n- [ ] Customer.io status page checked (https:\u002F\u002Fstatus.customer.io)\n- [ ] Track API auth verified (HTTP 200)\n- [ ] App API auth verified (HTTP 200)\n- [ ] User profile exists and has `email` attribute\n- [ ] User is not suppressed\n- [ ] SDK version documented\n- [ ] Region configuration correct (US vs EU)\n- [ ] Error logs collected and redacted\n- [ ] Reproduction steps documented\n\n## Error Handling\n\n| Issue | Solution |\n|-------|----------|\n| Status page unreachable | Check your network; try from a different network |\n| Both APIs return 401 | Credentials are wrong — regenerate in dashboard |\n| Track OK but App 401 | Using Track API key for App API — they're separate keys |\n| Logs contain PII | Run redaction script before sharing with support |\n\n## Resources\n\n- [Customer.io Support](https:\u002F\u002Fcustomer.io\u002Fcontact\u002F)\n- [Customer.io Community](https:\u002F\u002Fcommunity.customer.io\u002F)\n- [Status Page](https:\u002F\u002Fstatus.customer.io\u002F)\n\n## Next Steps\n\nAfter creating debug bundle, proceed to `customerio-rate-limits` to implement proper rate limiting.\n\n",{"name":5,"tags":49,"author":51,"license":15,"version":52,"description":53,"allowed-tools":54,"compatible-with":55},[50,28,40,42],"saas","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Collect Customer.io debug evidence for support tickets.\nUse when creating support requests, investigating delivery\nfailures, or documenting integration issues.\nTrigger: \"customer.io debug\", \"customer.io support ticket\",\n\"collect customer.io logs\", \"customer.io diagnostics\".\n","Read, Grep, Bash(curl:*), Bash(npx:*)","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fcustomerio-debug-bundle",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":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill customerio-debug-bundle",{"tool":71,"command":72},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill customerio-debug-bundle",{"tool":74,"command":75},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill customerio-debug-bundle","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fcustomerio-debug-bundle\u002FSKILL.md",true,[],[80,94,104,113,119,126],{"skillNo":81,"name":82,"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":83,"categories":84,"keywords":90,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[91,92,93],"model","model hierarchy","model hierarchy skill",{"skillNo":95,"name":96,"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":97,"categories":98,"keywords":100,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[99],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[101,102,103],"MCP","zoom","zoom mcp",{"skillNo":105,"name":106,"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":107,"categories":108,"keywords":109,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[110,111,112,102],"sdk","zoom apps sdk","apps",{"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":118,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[115],{"skillNo":120,"name":121,"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":122,"categories":123,"keywords":125,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[124],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[121],{"skillNo":127,"name":128,"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":129,"categories":130,"keywords":131,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[128]]