[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M79005C1Q5WMFSKXFQM9SWY9":3,"skill-same:01M79005C1Q5WMFSKXFQM9SWY9":55},{"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":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":38,"ownerDescription":39,"updatedAt":40,"install":41,"resources":54},"01M79005C1Q5WMFSKXFQM9SWY9","figma-migration-deep-dive",null,"Migrate design systems between Figma files, or from other tools to Figma via API.\nUse when migrating design tokens between files, syncing variables across libraries,\nor building automated migration pipelines for Figma.\nTrigger with phrases like \"migrate figma\", \"figma migration\",\n\"move figma library\", \"figma file migration\", \"sync figma files\".","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--figma-pack--figma-migration-deep-dive\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: figma-migration-deep-dive\ndescription: |\n  Migrate design systems between Figma files, or from other tools to Figma via API.\n  Use when migrating design tokens between files, syncing variables across libraries,\n  or building automated migration pipelines for Figma.\n  Trigger with phrases like \"migrate figma\", \"figma migration\",\n  \"move figma library\", \"figma file migration\", \"sync figma files\".\nallowed-tools: Read, Write, Edit, Bash(npm:*), Bash(node:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ntags: [saas, figma]\ncompatible-with: claude-code\n---\n\n# Figma Migration Deep Dive\n\n## Overview\nAutomate migration of design data between Figma files, from other tools to Figma, or from Figma styles to the Variables API. Covers inventory, extraction, transformation, and validation.\n\n## Prerequisites\n- Source and destination Figma file keys\n- `FIGMA_PAT` with `file_content:read` and `file_variables:write` (Enterprise) scopes\n- Understanding of source file structure\n\n## Instructions\n\n### Step 1: Inventory Source File\n```typescript\nconst PAT = process.env.FIGMA_PAT!;\n\nasync function inventoryFile(fileKey: string) {\n  const res = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${fileKey}`,\n    { headers: { 'X-Figma-Token': PAT } }\n  );\n  const file = await res.json();\n\n  const inventory = {\n    name: file.name,\n    pages: file.document.children.map((p: any) => p.name),\n    componentCount: Object.keys(file.components).length,\n    styleCount: Object.keys(file.styles).length,\n    styles: {\n      fills: Object.values(file.styles).filter((s: any) => s.style_type === 'FILL').length,\n      text: Object.values(file.styles).filter((s: any) => s.style_type === 'TEXT').length,\n      effects: Object.values(file.styles).filter((s: any) => s.style_type === 'EFFECT').length,\n      grids: Object.values(file.styles).filter((s: any) => s.style_type === 'GRID').length,\n    },\n  };\n\n  \u002F\u002F Count total nodes\n  let nodeCount = 0;\n  function countNodes(node: any) {\n    nodeCount++;\n    if (node.children) node.children.forEach(countNodes);\n  }\n  countNodes(file.document);\n  (inventory as any).totalNodes = nodeCount;\n\n  return inventory;\n}\n\n\u002F\u002F Usage\nconst inv = await inventoryFile(process.env.FIGMA_FILE_KEY!);\nconsole.log(`File: ${inv.name}`);\nconsole.log(`Pages: ${inv.pages.join(', ')}`);\nconsole.log(`Components: ${inv.componentCount}, Styles: ${inv.styleCount}`);\nconsole.log(`Total nodes: ${(inv as any).totalNodes}`);\n```\n\n### Step 2: Extract Styles from Source\n```typescript\nasync function extractAllStyles(fileKey: string) {\n  const file = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${fileKey}`,\n    { headers: { 'X-Figma-Token': PAT } }\n  ).then(r => r.json());\n\n  const styleNodeIds = Object.keys(file.styles);\n  const nodesRes = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${fileKey}\u002Fnodes?ids=${styleNodeIds.join(',')}`,\n    { headers: { 'X-Figma-Token': PAT } }\n  ).then(r => r.json());\n\n  const extracted = [];\n  for (const [nodeId, styleMeta] of Object.entries(file.styles) as any[]) {\n    const node = nodesRes.nodes[nodeId]?.document;\n    if (!node) continue;\n\n    extracted.push({\n      name: styleMeta.name,\n      type: styleMeta.style_type,\n      nodeId,\n      data: {\n        fills: node.fills,\n        strokes: node.strokes,\n        effects: node.effects,\n        style: node.style,       \u002F\u002F typography\n        characters: node.characters,\n      },\n    });\n  }\n\n  return extracted;\n}\n```\n\n### Step 3: Transform and Map to Target\n```typescript\n\u002F\u002F Map extracted styles to design tokens JSON\ninterface MigrationToken {\n  name: string;\n  category: 'color' | 'typography' | 'effect';\n  source: { file: string; nodeId: string };\n  value: any;\n}\n\nfunction transformStyles(styles: any[], sourceFileKey: string): MigrationToken[] {\n  return styles.map(style => {\n    switch (style.type) {\n      case 'FILL':\n        const fill = style.data.fills?.[0];\n        return {\n          name: style.name,\n          category: 'color' as const,\n          source: { file: sourceFileKey, nodeId: style.nodeId },\n          value: fill?.color\n            ? {\n                r: Math.round(fill.color.r * 255),\n                g: Math.round(fill.color.g * 255),\n                b: Math.round(fill.color.b * 255),\n                a: fill.color.a ?? 1,\n              }\n            : null,\n        };\n      case 'TEXT':\n        return {\n          name: style.name,\n          category: 'typography' as const,\n          source: { file: sourceFileKey, nodeId: style.nodeId },\n          value: style.data.style\n            ? {\n                fontFamily: style.data.style.fontFamily,\n                fontSize: style.data.style.fontSize,\n                fontWeight: style.data.style.fontWeight,\n                lineHeight: style.data.style.lineHeightPx,\n              }\n            : null,\n        };\n      default:\n        return {\n          name: style.name,\n          category: 'effect' as const,\n          source: { file: sourceFileKey, nodeId: style.nodeId },\n          value: style.data.effects,\n        };\n    }\n  }).filter(t => t.value !== null);\n}\n```\n\n### Step 4: Write to Target (Variables API)\n```typescript\n\u002F\u002F Enterprise only: create variables in the target file\nasync function migrateToVariables(\n  targetFileKey: string,\n  tokens: MigrationToken[]\n) {\n  const colorTokens = tokens.filter(t => t.category === 'color');\n\n  \u002F\u002F Create variable collection and variables\n  const payload = {\n    variableCollections: [{\n      action: 'CREATE' as const,\n      id: 'temp_collection_1',\n      name: 'Migrated Colors',\n    }],\n    variables: colorTokens.map((token, i) => ({\n      action: 'CREATE' as const,\n      id: `temp_var_${i}`,\n      name: token.name.replace(\u002F\\\u002F\u002Fg, '\u002F'), \u002F\u002F preserve Figma group paths\n      variableCollectionId: 'temp_collection_1',\n      resolvedType: 'COLOR' as const,\n      codeSyntax: { WEB: `--${token.name.toLowerCase().replace(\u002F[\\s\u002F]+\u002Fg, '-')}` },\n    })),\n    variableModeValues: colorTokens.map((token, i) => ({\n      variableId: `temp_var_${i}`,\n      modeId: '', \u002F\u002F Will use default mode\n      value: {\n        r: token.value.r \u002F 255,\n        g: token.value.g \u002F 255,\n        b: token.value.b \u002F 255,\n        a: token.value.a,\n      },\n    })),\n  };\n\n  const res = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${targetFileKey}\u002Fvariables`,\n    {\n      method: 'POST',\n      headers: {\n        'X-Figma-Token': PAT,\n        'Content-Type': 'application\u002Fjson',\n      },\n      body: JSON.stringify(payload),\n    }\n  );\n\n  if (!res.ok) throw new Error(`Variable creation failed: ${res.status} ${await res.text()}`);\n  return res.json();\n}\n```\n\n### Step 5: Validation\n```typescript\nasync function validateMigration(\n  sourceFileKey: string,\n  targetFileKey: string\n): Promise\u003C{ passed: boolean; issues: string[] }> {\n  const sourceStyles = await extractAllStyles(sourceFileKey);\n  const targetVars = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${targetFileKey}\u002Fvariables\u002Flocal`,\n    { headers: { 'X-Figma-Token': PAT } }\n  ).then(r => r.json());\n\n  const issues: string[] = [];\n  const targetNames = new Set(\n    Object.values(targetVars.meta.variables).map((v: any) => v.name)\n  );\n\n  for (const style of sourceStyles) {\n    if (style.type === 'FILL' && !targetNames.has(style.name)) {\n      issues.push(`Missing in target: ${style.name}`);\n    }\n  }\n\n  return { passed: issues.length === 0, issues };\n}\n```\n\n## Output\n- Source file inventoried (components, styles, nodes)\n- Styles extracted and transformed to tokens\n- Tokens written to target file via Variables API\n- Migration validated with comparison report\n\n## Error Handling\n| Error | Cause | Solution |\n|-------|-------|----------|\n| 403 on Variables POST | Not Enterprise | Use JSON export instead of Variables API |\n| Duplicate variable names | Name collision in target | Add prefix\u002Fsuffix to migrated names |\n| Missing node data | Node deleted between fetch and read | Re-fetch with error handling |\n| Large file timeout | File >100MB | Use `\u002Fnodes` endpoint for specific pages |\n\n## Resources\n- [Figma Variables API](https:\u002F\u002Fdevelopers.figma.com\u002Fdocs\u002Frest-api\u002Fvariables-endpoints\u002F)\n- [Figma File Endpoints](https:\u002F\u002Fdevelopers.figma.com\u002Fdocs\u002Frest-api\u002Ffile-endpoints\u002F)\n- [Design Tokens Format](https:\u002F\u002Fdesign-tokens.github.io\u002Fcommunity-group\u002Fformat\u002F)\n\n## Next Steps\nFor advanced troubleshooting, see `figma-advanced-troubleshooting`.\n","# Figma Migration Deep Dive\n\n## Overview\nAutomate migration of design data between Figma files, from other tools to Figma, or from Figma styles to the Variables API. Covers inventory, extraction, transformation, and validation.\n\n## Prerequisites\n- Source and destination Figma file keys\n- `FIGMA_PAT` with `file_content:read` and `file_variables:write` (Enterprise) scopes\n- Understanding of source file structure\n\n## Instructions\n\n### Step 1: Inventory Source File\n```typescript\nconst PAT = process.env.FIGMA_PAT!;\n\nasync function inventoryFile(fileKey: string) {\n  const res = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${fileKey}`,\n    { headers: { 'X-Figma-Token': PAT } }\n  );\n  const file = await res.json();\n\n  const inventory = {\n    name: file.name,\n    pages: file.document.children.map((p: any) => p.name),\n    componentCount: Object.keys(file.components).length,\n    styleCount: Object.keys(file.styles).length,\n    styles: {\n      fills: Object.values(file.styles).filter((s: any) => s.style_type === 'FILL').length,\n      text: Object.values(file.styles).filter((s: any) => s.style_type === 'TEXT').length,\n      effects: Object.values(file.styles).filter((s: any) => s.style_type === 'EFFECT').length,\n      grids: Object.values(file.styles).filter((s: any) => s.style_type === 'GRID').length,\n    },\n  };\n\n  \u002F\u002F Count total nodes\n  let nodeCount = 0;\n  function countNodes(node: any) {\n    nodeCount++;\n    if (node.children) node.children.forEach(countNodes);\n  }\n  countNodes(file.document);\n  (inventory as any).totalNodes = nodeCount;\n\n  return inventory;\n}\n\n\u002F\u002F Usage\nconst inv = await inventoryFile(process.env.FIGMA_FILE_KEY!);\nconsole.log(`File: ${inv.name}`);\nconsole.log(`Pages: ${inv.pages.join(', ')}`);\nconsole.log(`Components: ${inv.componentCount}, Styles: ${inv.styleCount}`);\nconsole.log(`Total nodes: ${(inv as any).totalNodes}`);\n```\n\n### Step 2: Extract Styles from Source\n```typescript\nasync function extractAllStyles(fileKey: string) {\n  const file = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${fileKey}`,\n    { headers: { 'X-Figma-Token': PAT } }\n  ).then(r => r.json());\n\n  const styleNodeIds = Object.keys(file.styles);\n  const nodesRes = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${fileKey}\u002Fnodes?ids=${styleNodeIds.join(',')}`,\n    { headers: { 'X-Figma-Token': PAT } }\n  ).then(r => r.json());\n\n  const extracted = [];\n  for (const [nodeId, styleMeta] of Object.entries(file.styles) as any[]) {\n    const node = nodesRes.nodes[nodeId]?.document;\n    if (!node) continue;\n\n    extracted.push({\n      name: styleMeta.name,\n      type: styleMeta.style_type,\n      nodeId,\n      data: {\n        fills: node.fills,\n        strokes: node.strokes,\n        effects: node.effects,\n        style: node.style,       \u002F\u002F typography\n        characters: node.characters,\n      },\n    });\n  }\n\n  return extracted;\n}\n```\n\n### Step 3: Transform and Map to Target\n```typescript\n\u002F\u002F Map extracted styles to design tokens JSON\ninterface MigrationToken {\n  name: string;\n  category: 'color' | 'typography' | 'effect';\n  source: { file: string; nodeId: string };\n  value: any;\n}\n\nfunction transformStyles(styles: any[], sourceFileKey: string): MigrationToken[] {\n  return styles.map(style => {\n    switch (style.type) {\n      case 'FILL':\n        const fill = style.data.fills?.[0];\n        return {\n          name: style.name,\n          category: 'color' as const,\n          source: { file: sourceFileKey, nodeId: style.nodeId },\n          value: fill?.color\n            ? {\n                r: Math.round(fill.color.r * 255),\n                g: Math.round(fill.color.g * 255),\n                b: Math.round(fill.color.b * 255),\n                a: fill.color.a ?? 1,\n              }\n            : null,\n        };\n      case 'TEXT':\n        return {\n          name: style.name,\n          category: 'typography' as const,\n          source: { file: sourceFileKey, nodeId: style.nodeId },\n          value: style.data.style\n            ? {\n                fontFamily: style.data.style.fontFamily,\n                fontSize: style.data.style.fontSize,\n                fontWeight: style.data.style.fontWeight,\n                lineHeight: style.data.style.lineHeightPx,\n              }\n            : null,\n        };\n      default:\n        return {\n          name: style.name,\n          category: 'effect' as const,\n          source: { file: sourceFileKey, nodeId: style.nodeId },\n          value: style.data.effects,\n        };\n    }\n  }).filter(t => t.value !== null);\n}\n```\n\n### Step 4: Write to Target (Variables API)\n```typescript\n\u002F\u002F Enterprise only: create variables in the target file\nasync function migrateToVariables(\n  targetFileKey: string,\n  tokens: MigrationToken[]\n) {\n  const colorTokens = tokens.filter(t => t.category === 'color');\n\n  \u002F\u002F Create variable collection and variables\n  const payload = {\n    variableCollections: [{\n      action: 'CREATE' as const,\n      id: 'temp_collection_1',\n      name: 'Migrated Colors',\n    }],\n    variables: colorTokens.map((token, i) => ({\n      action: 'CREATE' as const,\n      id: `temp_var_${i}`,\n      name: token.name.replace(\u002F\\\u002F\u002Fg, '\u002F'), \u002F\u002F preserve Figma group paths\n      variableCollectionId: 'temp_collection_1',\n      resolvedType: 'COLOR' as const,\n      codeSyntax: { WEB: `--${token.name.toLowerCase().replace(\u002F[\\s\u002F]+\u002Fg, '-')}` },\n    })),\n    variableModeValues: colorTokens.map((token, i) => ({\n      variableId: `temp_var_${i}`,\n      modeId: '', \u002F\u002F Will use default mode\n      value: {\n        r: token.value.r \u002F 255,\n        g: token.value.g \u002F 255,\n        b: token.value.b \u002F 255,\n        a: token.value.a,\n      },\n    })),\n  };\n\n  const res = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${targetFileKey}\u002Fvariables`,\n    {\n      method: 'POST',\n      headers: {\n        'X-Figma-Token': PAT,\n        'Content-Type': 'application\u002Fjson',\n      },\n      body: JSON.stringify(payload),\n    }\n  );\n\n  if (!res.ok) throw new Error(`Variable creation failed: ${res.status} ${await res.text()}`);\n  return res.json();\n}\n```\n\n### Step 5: Validation\n```typescript\nasync function validateMigration(\n  sourceFileKey: string,\n  targetFileKey: string\n): Promise\u003C{ passed: boolean; issues: string[] }> {\n  const sourceStyles = await extractAllStyles(sourceFileKey);\n  const targetVars = await fetch(\n    `https:\u002F\u002Fapi.figma.com\u002Fv1\u002Ffiles\u002F${targetFileKey}\u002Fvariables\u002Flocal`,\n    { headers: { 'X-Figma-Token': PAT } }\n  ).then(r => r.json());\n\n  const issues: string[] = [];\n  const targetNames = new Set(\n    Object.values(targetVars.meta.variables).map((v: any) => v.name)\n  );\n\n  for (const style of sourceStyles) {\n    if (style.type === 'FILL' && !targetNames.has(style.name)) {\n      issues.push(`Missing in target: ${style.name}`);\n    }\n  }\n\n  return { passed: issues.length === 0, issues };\n}\n```\n\n## Output\n- Source file inventoried (components, styles, nodes)\n- Styles extracted and transformed to tokens\n- Tokens written to target file via Variables API\n- Migration validated with comparison report\n\n## Error Handling\n| Error | Cause | Solution |\n|-------|-------|----------|\n| 403 on Variables POST | Not Enterprise | Use JSON export instead of Variables API |\n| Duplicate variable names | Name collision in target | Add prefix\u002Fsuffix to migrated names |\n| Missing node data | Node deleted between fetch and read | Re-fetch with error handling |\n| Large file timeout | File >100MB | Use `\u002Fnodes` endpoint for specific pages |\n\n## Resources\n- [Figma Variables API](https:\u002F\u002Fdevelopers.figma.com\u002Fdocs\u002Frest-api\u002Fvariables-endpoints\u002F)\n- [Figma File Endpoints](https:\u002F\u002Fdevelopers.figma.com\u002Fdocs\u002Frest-api\u002Ffile-endpoints\u002F)\n- [Design Tokens Format](https:\u002F\u002Fdesign-tokens.github.io\u002Fcommunity-group\u002Fformat\u002F)\n\n## Next Steps\nFor advanced troubleshooting, see `figma-advanced-troubleshooting`.\n",{"name":5,"tags":24,"author":27,"license":15,"version":28,"description":29,"allowed-tools":30,"compatible-with":31},[25,26],"saas","figma","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Migrate design systems between Figma files, or from other tools to Figma via API.\nUse when migrating design tokens between files, syncing variables across libraries,\nor building automated migration pipelines for Figma.\nTrigger with phrases like \"migrate figma\", \"figma migration\",\n\"move figma library\", \"figma file migration\", \"sync figma files\".\n","Read, Write, Edit, Bash(npm:*), Bash(node:*)","claude-code","main","99825ad3f3bcc6597ddcc7294a14e6e922f2b67b","skills\u002Fsaas-packs--figma-pack--figma-migration-deep-dive",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":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add jukeyman\u002Fjukeyman-skills --skill figma-migration-deep-dive",{"tool":47,"command":48},"bunx","bunx skills add jukeyman\u002Fjukeyman-skills --skill figma-migration-deep-dive",{"tool":50,"command":51},"pnpm","pnpm dlx skills add jukeyman\u002Fjukeyman-skills --skill figma-migration-deep-dive","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjukeyman\u002Fjukeyman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsaas-packs--figma-pack--figma-migration-deep-dive\u002FSKILL.md",true,[],[56,63,70,77,84,92],{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"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":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"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":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"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":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"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":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":88,"sourceHtmlUrl":89,"categories":90,"keywords":91,"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":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"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",[],[]]