[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M791CSM838THCCBA89SMTAW9":3,"skill-same:01M791CSM838THCCBA89SMTAW9":57},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":40,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M791CSM838THCCBA89SMTAW9","hubspot-data-handling",null,"Implement HubSpot GDPR compliance, data export, and contact privacy operations.\nUse when handling GDPR\u002FCCPA data subject requests, implementing data export,\ncontact deletion, or privacy-compliant HubSpot integrations.\nTrigger with phrases like \"hubspot GDPR\", \"hubspot data export\",\n\"hubspot delete contact\", \"hubspot privacy\", \"hubspot CCPA\", \"hubspot PII\".","jukeyman\u002Fjukeyman-skills","jukeyman","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F142960420?v=4","01M78FR4Y3DHMMCBCC0GXXNB3F","RICK JEFFERSON","01M78FR4Z8RVQRAD31Y5J7V6EB",1,"MIT","https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsaas-packs--hubspot-pack--hubspot-data-handling\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: hubspot-data-handling\ndescription: |\n  Implement HubSpot GDPR compliance, data export, and contact privacy operations.\n  Use when handling GDPR\u002FCCPA data subject requests, implementing data export,\n  contact deletion, or privacy-compliant HubSpot integrations.\n  Trigger with phrases like \"hubspot GDPR\", \"hubspot data export\",\n  \"hubspot delete contact\", \"hubspot privacy\", \"hubspot CCPA\", \"hubspot PII\".\nallowed-tools: Read, Write, Edit\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ntags: [saas, crm, marketing, hubspot]\ncompatible-with: claude-code\n---\n\n# HubSpot Data Handling\n\n## Overview\n\nHandle GDPR\u002FCCPA compliance with HubSpot's built-in privacy APIs: GDPR delete, data export, consent management, and PII handling for CRM data.\n\n## Prerequisites\n\n- HubSpot account with GDPR features enabled\n- Scope: `crm.objects.contacts.write` (for GDPR delete)\n- Understanding of GDPR\u002FCCPA requirements\n\n## Instructions\n\n### Step 1: GDPR Contact Deletion\n\nHubSpot provides a dedicated GDPR delete endpoint that permanently removes all contact data and communications:\n\n```typescript\nimport * as hubspot from '@hubspot\u002Fapi-client';\n\nconst client = new hubspot.Client({\n  accessToken: process.env.HUBSPOT_ACCESS_TOKEN!,\n});\n\n\u002F\u002F GDPR delete: permanently removes contact and all associated data\n\u002F\u002F POST \u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002Fgdpr-delete\nasync function gdprDeleteContact(email: string): Promise\u003Cvoid> {\n  \u002F\u002F First, find the contact\n  const search = await client.crm.contacts.searchApi.doSearch({\n    filterGroups: [{\n      filters: [{ propertyName: 'email', operator: 'EQ', value: email }],\n    }],\n    properties: ['email'],\n    limit: 1, after: 0, sorts: [],\n  });\n\n  if (search.results.length === 0) {\n    console.log(`Contact not found: ${email}`);\n    return;\n  }\n\n  const contactId = search.results[0].id;\n\n  \u002F\u002F GDPR delete via API\n  await client.apiRequest({\n    method: 'POST',\n    path: '\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002Fgdpr-delete',\n    body: {\n      objectId: contactId,\n      idProperty: 'hs_object_id',\n    },\n  });\n\n  \u002F\u002F Also delete from your local systems\n  await deleteLocalContactData(email);\n\n  \u002F\u002F Audit log (keep for compliance -- do NOT delete audit records)\n  await auditLog({\n    action: 'GDPR_DELETE',\n    email: '[REDACTED]', \u002F\u002F don't store the email in audit\n    contactId,\n    timestamp: new Date().toISOString(),\n    reason: 'Data subject deletion request',\n  });\n\n  console.log(`GDPR deleted contact ${contactId}`);\n}\n```\n\n### Step 2: Data Subject Access Request (DSAR)\n\nExport all data HubSpot holds about a contact:\n\n```typescript\nasync function exportContactData(email: string): Promise\u003CContactDataExport> {\n  \u002F\u002F Find contact\n  const search = await client.crm.contacts.searchApi.doSearch({\n    filterGroups: [{\n      filters: [{ propertyName: 'email', operator: 'EQ', value: email }],\n    }],\n    properties: [], \u002F\u002F get all default properties\n    limit: 1, after: 0, sorts: [],\n  });\n\n  if (search.results.length === 0) {\n    return { found: false, data: null };\n  }\n\n  const contact = search.results[0];\n\n  \u002F\u002F Get all properties for complete export\n  const fullContact = await client.crm.contacts.basicApi.getById(\n    contact.id,\n    undefined, \u002F\u002F all properties\n    undefined,\n    ['companies', 'deals', 'tickets'] \u002F\u002F include associations\n  );\n\n  \u002F\u002F Get associated deals\n  const deals = await client.crm.deals.searchApi.doSearch({\n    filterGroups: [{\n      filters: [{\n        propertyName: 'associations.contact',\n        operator: 'EQ',\n        value: contact.id,\n      }],\n    }],\n    properties: ['dealname', 'amount', 'dealstage', 'createdate'],\n    limit: 100, after: 0, sorts: [],\n  });\n\n  \u002F\u002F Get engagement history (notes, emails, calls)\n  const notes = await client.crm.objects.notes.basicApi.getPage(\n    100, undefined, ['hs_note_body', 'hs_timestamp']\n  );\n\n  return {\n    found: true,\n    data: {\n      exportedAt: new Date().toISOString(),\n      source: 'HubSpot CRM',\n      contact: fullContact.properties,\n      associations: fullContact.associations,\n      deals: deals.results.map(d => d.properties),\n      notes: notes.results.map(n => n.properties),\n    },\n  };\n}\n\ninterface ContactDataExport {\n  found: boolean;\n  data: {\n    exportedAt: string;\n    source: string;\n    contact: Record\u003Cstring, string>;\n    associations?: any;\n    deals: Record\u003Cstring, string>[];\n    notes: Record\u003Cstring, string>[];\n  } | null;\n}\n```\n\n### Step 3: PII Redaction for Logging\n\n```typescript\n\u002F\u002F Never log PII from HubSpot responses\nconst PII_FIELDS = new Set([\n  'email', 'firstname', 'lastname', 'phone', 'mobilephone',\n  'address', 'city', 'state', 'zip', 'country',\n  'date_of_birth', 'ip_city', 'ip_state', 'ip_country',\n]);\n\nfunction redactContactForLogging(properties: Record\u003Cstring, string>): Record\u003Cstring, string> {\n  const redacted: Record\u003Cstring, string> = {};\n  for (const [key, value] of Object.entries(properties)) {\n    redacted[key] = PII_FIELDS.has(key) ? '[REDACTED]' : value;\n  }\n  return redacted;\n}\n\n\u002F\u002F Usage\nconst contact = await client.crm.contacts.basicApi.getById(id, ['email', 'lifecyclestage']);\nconsole.log('Contact data:', redactContactForLogging(contact.properties));\n\u002F\u002F Output: { email: \"[REDACTED]\", lifecyclestage: \"customer\" }\n```\n\n### Step 4: Consent Tracking\n\n```typescript\n\u002F\u002F Track consent using HubSpot's communication preferences\n\u002F\u002F POST \u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts (with consent properties)\nasync function createContactWithConsent(\n  email: string,\n  properties: Record\u003Cstring, string>,\n  consent: { marketing: boolean; sales: boolean }\n): Promise\u003Cvoid> {\n  await client.crm.contacts.basicApi.create({\n    properties: {\n      ...properties,\n      email,\n      hs_legal_basis: consent.marketing\n        ? 'Legitimate interest - existing customer'\n        : 'Not applicable',\n    },\n    associations: [],\n  });\n\n  \u002F\u002F Set communication preferences via the subscriptions API\n  if (consent.marketing) {\n    await client.apiRequest({\n      method: 'POST',\n      path: `\u002Fcommunication-preferences\u002Fv3\u002Fsubscribe`,\n      body: {\n        emailAddress: email,\n        subscriptionId: process.env.HUBSPOT_MARKETING_SUBSCRIPTION_ID!,\n        legalBasis: 'CONSENT_WITH_NOTICE',\n        legalBasisExplanation: 'User opted in via signup form',\n      },\n    });\n  }\n}\n```\n\n### Step 5: Data Minimization\n\n```typescript\n\u002F\u002F Only request the properties you actually need\n\u002F\u002F BAD: Fetches all default properties including PII\nconst bad = await client.crm.contacts.basicApi.getById(id);\n\n\u002F\u002F GOOD: Only fetch non-PII fields for analytics\nconst good = await client.crm.contacts.basicApi.getById(id, [\n  'lifecyclestage',      \u002F\u002F not PII\n  'hs_lead_status',      \u002F\u002F not PII\n  'createdate',          \u002F\u002F not PII\n  'num_associated_deals', \u002F\u002F not PII\n]);\n```\n\n## Output\n\n- GDPR delete endpoint permanently removing contact data\n- Data export for Subject Access Requests\n- PII redaction utility for safe logging\n- Consent tracking with communication preferences\n- Data minimization patterns for non-PII analytics\n\n## Error Handling\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| GDPR delete returns 404 | Contact already deleted | Idempotent -- log and continue |\n| Export missing associations | Scope not granted | Add `crm.objects.deals.read` scope |\n| Consent API returns 400 | Invalid subscription ID | Check Settings > Marketing > Email > Subscriptions |\n| PII in logs | Missing redaction | Wrap all logging with `redactContactForLogging` |\n\n## Resources\n\n- [HubSpot GDPR Compliance](https:\u002F\u002Fdevelopers.hubspot.com\u002Fdocs\u002Fguides\u002Fapi\u002Fcrm\u002Fgdpr)\n- [Communication Preferences API](https:\u002F\u002Fdevelopers.hubspot.com\u002Fdocs\u002Freference\u002Fapi\u002Fmarketing\u002Fsubscriptions-preferences)\n- [GDPR Developer Guide](https:\u002F\u002Fgdpr.eu\u002Fdevelopers\u002F)\n\n## Next Steps\n\nFor enterprise access control, see `hubspot-enterprise-rbac`.\n","# HubSpot Data Handling\n\n## Overview\n\nHandle GDPR\u002FCCPA compliance with HubSpot's built-in privacy APIs: GDPR delete, data export, consent management, and PII handling for CRM data.\n\n## Prerequisites\n\n- HubSpot account with GDPR features enabled\n- Scope: `crm.objects.contacts.write` (for GDPR delete)\n- Understanding of GDPR\u002FCCPA requirements\n\n## Instructions\n\n### Step 1: GDPR Contact Deletion\n\nHubSpot provides a dedicated GDPR delete endpoint that permanently removes all contact data and communications:\n\n```typescript\nimport * as hubspot from '@hubspot\u002Fapi-client';\n\nconst client = new hubspot.Client({\n  accessToken: process.env.HUBSPOT_ACCESS_TOKEN!,\n});\n\n\u002F\u002F GDPR delete: permanently removes contact and all associated data\n\u002F\u002F POST \u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002Fgdpr-delete\nasync function gdprDeleteContact(email: string): Promise\u003Cvoid> {\n  \u002F\u002F First, find the contact\n  const search = await client.crm.contacts.searchApi.doSearch({\n    filterGroups: [{\n      filters: [{ propertyName: 'email', operator: 'EQ', value: email }],\n    }],\n    properties: ['email'],\n    limit: 1, after: 0, sorts: [],\n  });\n\n  if (search.results.length === 0) {\n    console.log(`Contact not found: ${email}`);\n    return;\n  }\n\n  const contactId = search.results[0].id;\n\n  \u002F\u002F GDPR delete via API\n  await client.apiRequest({\n    method: 'POST',\n    path: '\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002Fgdpr-delete',\n    body: {\n      objectId: contactId,\n      idProperty: 'hs_object_id',\n    },\n  });\n\n  \u002F\u002F Also delete from your local systems\n  await deleteLocalContactData(email);\n\n  \u002F\u002F Audit log (keep for compliance -- do NOT delete audit records)\n  await auditLog({\n    action: 'GDPR_DELETE',\n    email: '[REDACTED]', \u002F\u002F don't store the email in audit\n    contactId,\n    timestamp: new Date().toISOString(),\n    reason: 'Data subject deletion request',\n  });\n\n  console.log(`GDPR deleted contact ${contactId}`);\n}\n```\n\n### Step 2: Data Subject Access Request (DSAR)\n\nExport all data HubSpot holds about a contact:\n\n```typescript\nasync function exportContactData(email: string): Promise\u003CContactDataExport> {\n  \u002F\u002F Find contact\n  const search = await client.crm.contacts.searchApi.doSearch({\n    filterGroups: [{\n      filters: [{ propertyName: 'email', operator: 'EQ', value: email }],\n    }],\n    properties: [], \u002F\u002F get all default properties\n    limit: 1, after: 0, sorts: [],\n  });\n\n  if (search.results.length === 0) {\n    return { found: false, data: null };\n  }\n\n  const contact = search.results[0];\n\n  \u002F\u002F Get all properties for complete export\n  const fullContact = await client.crm.contacts.basicApi.getById(\n    contact.id,\n    undefined, \u002F\u002F all properties\n    undefined,\n    ['companies', 'deals', 'tickets'] \u002F\u002F include associations\n  );\n\n  \u002F\u002F Get associated deals\n  const deals = await client.crm.deals.searchApi.doSearch({\n    filterGroups: [{\n      filters: [{\n        propertyName: 'associations.contact',\n        operator: 'EQ',\n        value: contact.id,\n      }],\n    }],\n    properties: ['dealname', 'amount', 'dealstage', 'createdate'],\n    limit: 100, after: 0, sorts: [],\n  });\n\n  \u002F\u002F Get engagement history (notes, emails, calls)\n  const notes = await client.crm.objects.notes.basicApi.getPage(\n    100, undefined, ['hs_note_body', 'hs_timestamp']\n  );\n\n  return {\n    found: true,\n    data: {\n      exportedAt: new Date().toISOString(),\n      source: 'HubSpot CRM',\n      contact: fullContact.properties,\n      associations: fullContact.associations,\n      deals: deals.results.map(d => d.properties),\n      notes: notes.results.map(n => n.properties),\n    },\n  };\n}\n\ninterface ContactDataExport {\n  found: boolean;\n  data: {\n    exportedAt: string;\n    source: string;\n    contact: Record\u003Cstring, string>;\n    associations?: any;\n    deals: Record\u003Cstring, string>[];\n    notes: Record\u003Cstring, string>[];\n  } | null;\n}\n```\n\n### Step 3: PII Redaction for Logging\n\n```typescript\n\u002F\u002F Never log PII from HubSpot responses\nconst PII_FIELDS = new Set([\n  'email', 'firstname', 'lastname', 'phone', 'mobilephone',\n  'address', 'city', 'state', 'zip', 'country',\n  'date_of_birth', 'ip_city', 'ip_state', 'ip_country',\n]);\n\nfunction redactContactForLogging(properties: Record\u003Cstring, string>): Record\u003Cstring, string> {\n  const redacted: Record\u003Cstring, string> = {};\n  for (const [key, value] of Object.entries(properties)) {\n    redacted[key] = PII_FIELDS.has(key) ? '[REDACTED]' : value;\n  }\n  return redacted;\n}\n\n\u002F\u002F Usage\nconst contact = await client.crm.contacts.basicApi.getById(id, ['email', 'lifecyclestage']);\nconsole.log('Contact data:', redactContactForLogging(contact.properties));\n\u002F\u002F Output: { email: \"[REDACTED]\", lifecyclestage: \"customer\" }\n```\n\n### Step 4: Consent Tracking\n\n```typescript\n\u002F\u002F Track consent using HubSpot's communication preferences\n\u002F\u002F POST \u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts (with consent properties)\nasync function createContactWithConsent(\n  email: string,\n  properties: Record\u003Cstring, string>,\n  consent: { marketing: boolean; sales: boolean }\n): Promise\u003Cvoid> {\n  await client.crm.contacts.basicApi.create({\n    properties: {\n      ...properties,\n      email,\n      hs_legal_basis: consent.marketing\n        ? 'Legitimate interest - existing customer'\n        : 'Not applicable',\n    },\n    associations: [],\n  });\n\n  \u002F\u002F Set communication preferences via the subscriptions API\n  if (consent.marketing) {\n    await client.apiRequest({\n      method: 'POST',\n      path: `\u002Fcommunication-preferences\u002Fv3\u002Fsubscribe`,\n      body: {\n        emailAddress: email,\n        subscriptionId: process.env.HUBSPOT_MARKETING_SUBSCRIPTION_ID!,\n        legalBasis: 'CONSENT_WITH_NOTICE',\n        legalBasisExplanation: 'User opted in via signup form',\n      },\n    });\n  }\n}\n```\n\n### Step 5: Data Minimization\n\n```typescript\n\u002F\u002F Only request the properties you actually need\n\u002F\u002F BAD: Fetches all default properties including PII\nconst bad = await client.crm.contacts.basicApi.getById(id);\n\n\u002F\u002F GOOD: Only fetch non-PII fields for analytics\nconst good = await client.crm.contacts.basicApi.getById(id, [\n  'lifecyclestage',      \u002F\u002F not PII\n  'hs_lead_status',      \u002F\u002F not PII\n  'createdate',          \u002F\u002F not PII\n  'num_associated_deals', \u002F\u002F not PII\n]);\n```\n\n## Output\n\n- GDPR delete endpoint permanently removing contact data\n- Data export for Subject Access Requests\n- PII redaction utility for safe logging\n- Consent tracking with communication preferences\n- Data minimization patterns for non-PII analytics\n\n## Error Handling\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| GDPR delete returns 404 | Contact already deleted | Idempotent -- log and continue |\n| Export missing associations | Scope not granted | Add `crm.objects.deals.read` scope |\n| Consent API returns 400 | Invalid subscription ID | Check Settings > Marketing > Email > Subscriptions |\n| PII in logs | Missing redaction | Wrap all logging with `redactContactForLogging` |\n\n## Resources\n\n- [HubSpot GDPR Compliance](https:\u002F\u002Fdevelopers.hubspot.com\u002Fdocs\u002Fguides\u002Fapi\u002Fcrm\u002Fgdpr)\n- [Communication Preferences API](https:\u002F\u002Fdevelopers.hubspot.com\u002Fdocs\u002Freference\u002Fapi\u002Fmarketing\u002Fsubscriptions-preferences)\n- [GDPR Developer Guide](https:\u002F\u002Fgdpr.eu\u002Fdevelopers\u002F)\n\n## Next Steps\n\nFor enterprise access control, see `hubspot-enterprise-rbac`.\n",{"name":5,"tags":24,"author":29,"license":15,"version":30,"description":31,"allowed-tools":32,"compatible-with":33},[25,26,27,28],"saas","crm","marketing","hubspot","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Implement HubSpot GDPR compliance, data export, and contact privacy operations.\nUse when handling GDPR\u002FCCPA data subject requests, implementing data export,\ncontact deletion, or privacy-compliant HubSpot integrations.\nTrigger with phrases like \"hubspot GDPR\", \"hubspot data export\",\n\"hubspot delete contact\", \"hubspot privacy\", \"hubspot CCPA\", \"hubspot PII\".\n","Read, Write, Edit","claude-code","main","99825ad3f3bcc6597ddcc7294a14e6e922f2b67b","skills\u002Fsaas-packs--hubspot-pack--hubspot-data-handling",0,"https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills","https:\u002F\u002Fgithub.com\u002Fjukeyman","https:\u002F\u002FRJBUSINESSSOLUTIONS.ORG","Credit and Finance Expert | Developer\r\n\r\nI'm Rick Jefferson, a seasoned credit and finance expert with over a decade of experience in financial literacy,","2026-07-13 07:03:29",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add jukeyman\u002Fjukeyman-skills --skill hubspot-data-handling",{"tool":49,"command":50},"bunx","bunx skills add jukeyman\u002Fjukeyman-skills --skill hubspot-data-handling",{"tool":52,"command":53},"pnpm","pnpm dlx skills add jukeyman\u002Fjukeyman-skills --skill hubspot-data-handling","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsaas-packs--hubspot-pack--hubspot-data-handling\u002FSKILL.md",true,[],[58,65,72,79,86,94],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":19},"01M79ANS2SM329NEP5ZCX106RR","zustand-store-creator","Create zustand store creator operations. Auto-activating skill for Frontend Development.\nTriggers on: zustand store creator, zustand store creator\nPart of the Frontend Development skill category. Use when working with zustand store creator functionality. Trigger with phrases like \"zustand store creator\", \"zustand creator\", \"zustand\".","https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fzustand-store-creator\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":19},"01M79AMZKP4YDEZ7EHG1Y7PP74","zero-trust-config-helper","Configure with zero trust config helper operations. Auto-activating skill for Security Advanced.\nTriggers on: zero trust config helper, zero trust config helper\nPart of the Security Advanced skill category. Use when configuring systems or services. Trigger with phrases like \"zero trust config helper\", \"zero helper\", \"zero\".","https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fzero-trust-config-helper\u002FSKILL.md",[],[],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":19},"01M79AMJSBCEJQNBTYNAHYN5HM","zapier-integration-helper","Assist with zapier integration helper operations. Auto-activating skill for Business Automation.\nTriggers on: zapier integration helper, zapier integration helper\nPart of the Business Automation skill category. Use when working with APIs or building integrations. Trigger with phrases like \"zapier integration helper\", \"zapier helper\", \"zapier\".","https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fzapier-integration-helper\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"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":85,"publishedAt":19},"01M79AHJZGVMARS13VFQYRR1MP","yaml-config-validator","Validate yaml config validator operations. Auto-activating skill for DevOps Basics.\nTriggers on: yaml config validator, yaml config validator\nPart of the DevOps Basics skill category. Use when configuring systems or services. Trigger with phrases like \"yaml config validator\", \"yaml validator\", \"yaml\".","https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fyaml-config-validator\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":90,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":19},"01M79AHGDZRN0020RDQSQDPAM8","xvary-stock-research","Thesis-driven equity analysis from public SEC EDGAR and market data; \u002Fanalyze, \u002Fscore, \u002Fcompare workflows with bundled Python tools (Claude Code, Cursor, Codex).","https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fxvary-stock-research\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fxvary-stock-research\u002FSKILL.md",[],[],{"skillNo":95,"name":96,"nameZh":6,"description":97,"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":100,"publishedAt":19},"01M79AHCYJ9FV9RMHQ24HDRN33","xss-vulnerability-scanner","Scan xss vulnerability scanner operations. Auto-activating skill for Security Fundamentals.\nTriggers on: xss vulnerability scanner, xss vulnerability scanner\nPart of the Security Fundamentals skill category. Use when working with xss vulnerability scanner functionality. Trigger with phrases like \"xss vulnerability scanner\", \"xss scanner\", \"xss\".","https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fxss-vulnerability-scanner\u002FSKILL.md",[],[]]