[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F6EWHTDAX43HCGSZNXH18R":3,"skill-same:01M6F6EWHTDAX43HCGSZNXH18R":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},"01M6F6EWHTDAX43HCGSZNXH18R","adobe-enterprise-rbac",null,"Configure Adobe enterprise identity with Admin Console SCIM provisioning,\nUser Management API, product profile-based RBAC, and Federated ID\nwith Azure AD or Google Workspace.\nTrigger with phrases like \"adobe SSO\", \"adobe RBAC\",\n\"adobe enterprise\", \"adobe roles\", \"adobe SCIM\", \"adobe user management\".","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\u002Fadobe-enterprise-rbac\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],"adobe enterprise rbac","adobe","rbac","Enterprise","scim","trigger","io","edit","write","read","configure","api","design","sso","product","code","azure","identity","google workspace","google","2026-11-10 10:12:30",false,"---\nname: adobe-enterprise-rbac\ndescription: |\n  Configure Adobe enterprise identity with Admin Console SCIM provisioning,\n  User Management API, product profile-based RBAC, and Federated ID\n  with Azure AD or Google Workspace.\n  Trigger with phrases like \"adobe SSO\", \"adobe RBAC\",\n  \"adobe enterprise\", \"adobe roles\", \"adobe SCIM\", \"adobe user management\".\nallowed-tools: Read, Write, Edit\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ntags: [saas, design, adobe]\ncompatible-with: claude-code\n---\n\n# Adobe Enterprise RBAC\n\n## Overview\n\nConfigure enterprise-grade access control for Adobe integrations using Admin Console product profiles, User Management API (UMAPI) for programmatic user provisioning, and SCIM-based identity sync with Azure AD or Google Workspace.\n\n## Prerequisites\n\n- Adobe Enterprise or Teams subscription\n- Adobe Admin Console system administrator access\n- Identity Provider (Azure AD, Google Workspace, or Okta) for SSO\n- Understanding of SCIM 2.0 protocol\n\n## Instructions\n\n### Step 1: Set Up Federated Identity in Admin Console\n\n1. Go to https:\u002F\u002Fadminconsole.adobe.com > Settings > Identity\n2. Create a Federated ID directory\n3. Configure SSO:\n   - **Azure AD**: Admin Console > Add Azure Sync > Follow SCIM setup\n   - **Google Workspace**: Admin Console > Add Google Sync > SCIM provisioning\n   - **Generic SAML**: Upload IdP metadata XML\n\n```yaml\n# SAML Configuration Values (for your IdP)\nAdobe SP Entity ID: https:\u002F\u002Ffederatedid-na1.services.adobe.com\u002Ffederated\u002Fsaml\u002Fmetadata\nACS URL: https:\u002F\u002Ffederatedid-na1.services.adobe.com\u002Ffederated\u002Fsaml\u002FSSO\nName ID Format: urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress\n```\n\n### Step 2: Define Product Profiles (Adobe's RBAC Mechanism)\n\nProduct Profiles in Admin Console are Adobe's native RBAC system. Create profiles that map to your application roles:\n\n| Profile Name | Adobe APIs Granted | Application Role |\n|-------------|-------------------|------------------|\n| `API-Developers` | Firefly, PDF Services, Photoshop | Full API access |\n| `API-Viewers` | PDF Services (read-only) | Report viewers |\n| `API-Automation` | PDF Services, Document Generation | CI\u002FCD service accounts |\n| `API-Admin` | All APIs + Admin Console | Platform administrators |\n\n### Step 3: Programmatic User Management via UMAPI\n\n```typescript\n\u002F\u002F src\u002Fadobe\u002Fuser-management.ts\n\u002F\u002F Adobe User Management API (UMAPI) — manage users and product profile assignments\n\nconst UMAPI_BASE = 'https:\u002F\u002Fusermanagement.adobe.io\u002Fv2\u002Fusermanagement';\n\ninterface UmapiUser {\n  email: string;\n  firstname: string;\n  lastname: string;\n  country: string;\n}\n\nexport async function addUserToProductProfile(\n  user: UmapiUser,\n  productProfile: string\n): Promise\u003Cvoid> {\n  const token = await getAccessToken();\n\n  const response = await fetch(`${UMAPI_BASE}\u002Faction\u002F${process.env.ADOBE_IMS_ORG_ID}`, {\n    method: 'POST',\n    headers: {\n      'Authorization': `Bearer ${token}`,\n      'x-api-key': process.env.ADOBE_CLIENT_ID!,\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify([{\n      user: user.email,\n      requestID: `req-${Date.now()}`,\n      do: [\n        {\n          addAdobeID: {\n            email: user.email,\n            firstname: user.firstname,\n            lastname: user.lastname,\n            country: user.country,\n          },\n        },\n        {\n          add: {\n            product: [productProfile],\n          },\n        },\n      ],\n    }]),\n  });\n\n  if (!response.ok) throw new Error(`UMAPI error: ${await response.text()}`);\n  const result = await response.json();\n  console.log(`User ${user.email} added to profile ${productProfile}:`, result);\n}\n\nexport async function removeUserFromProductProfile(\n  email: string,\n  productProfile: string\n): Promise\u003Cvoid> {\n  const token = await getAccessToken();\n\n  const response = await fetch(`${UMAPI_BASE}\u002Faction\u002F${process.env.ADOBE_IMS_ORG_ID}`, {\n    method: 'POST',\n    headers: {\n      'Authorization': `Bearer ${token}`,\n      'x-api-key': process.env.ADOBE_CLIENT_ID!,\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify([{\n      user: email,\n      requestID: `req-${Date.now()}`,\n      do: [{\n        remove: {\n          product: [productProfile],\n        },\n      }],\n    }]),\n  });\n\n  if (!response.ok) throw new Error(`UMAPI error: ${await response.text()}`);\n}\n```\n\n### Step 4: Map IdP Groups to Adobe Product Profiles\n\n```typescript\n\u002F\u002F src\u002Fadobe\u002Fgroup-sync.ts\n\u002F\u002F Sync IdP group membership to Adobe Product Profiles\n\nconst GROUP_TO_PROFILE: Record\u003Cstring, string[]> = {\n  'Engineering':        ['API-Developers'],\n  'Data-Science':       ['API-Developers', 'API-Viewers'],\n  'Platform-Admins':    ['API-Admin'],\n  'CI-CD-Services':     ['API-Automation'],\n  'Business-Analysts':  ['API-Viewers'],\n};\n\nexport async function syncGroupMembership(\n  userEmail: string,\n  idpGroups: string[]\n): Promise\u003Cvoid> {\n  \u002F\u002F Determine which Adobe profiles this user should have\n  const targetProfiles = new Set\u003Cstring>();\n  for (const group of idpGroups) {\n    const profiles = GROUP_TO_PROFILE[group];\n    if (profiles) profiles.forEach(p => targetProfiles.add(p));\n  }\n\n  \u002F\u002F Get current Adobe profile assignments\n  const currentProfiles = await getUserProfiles(userEmail);\n\n  \u002F\u002F Add missing profiles\n  for (const profile of targetProfiles) {\n    if (!currentProfiles.includes(profile)) {\n      await addUserToProductProfile(\n        { email: userEmail, firstname: '', lastname: '', country: 'US' },\n        profile\n      );\n    }\n  }\n\n  \u002F\u002F Remove stale profiles\n  for (const profile of currentProfiles) {\n    if (!targetProfiles.has(profile)) {\n      await removeUserFromProductProfile(userEmail, profile);\n    }\n  }\n}\n```\n\n### Step 5: Application-Level Permission Check\n\n```typescript\n\u002F\u002F src\u002Fmiddleware\u002Fadobe-auth.ts\n\u002F\u002F Check that the current user's Adobe profile grants the required permission\n\ninterface AdobeUserContext {\n  email: string;\n  profiles: string[];  \u002F\u002F Product profiles from SSO token claims\n}\n\nconst PROFILE_PERMISSIONS: Record\u003Cstring, string[]> = {\n  'API-Developers': ['read', 'write', 'generate', 'extract'],\n  'API-Viewers':    ['read', 'extract'],\n  'API-Automation': ['read', 'write', 'extract', 'generate'],\n  'API-Admin':      ['read', 'write', 'generate', 'extract', 'delete', 'admin'],\n};\n\nfunction checkAdobePermission(user: AdobeUserContext, requiredPerm: string): boolean {\n  return user.profiles.some(profile => {\n    const perms = PROFILE_PERMISSIONS[profile];\n    return perms?.includes(requiredPerm);\n  });\n}\n\n\u002F\u002F Express middleware\nfunction requireAdobePermission(permission: string) {\n  return (req: any, res: any, next: any) => {\n    if (!checkAdobePermission(req.user, permission)) {\n      return res.status(403).json({\n        error: 'Forbidden',\n        message: `Missing Adobe permission: ${permission}`,\n        requiredProfile: Object.entries(PROFILE_PERMISSIONS)\n          .filter(([_, perms]) => perms.includes(permission))\n          .map(([profile]) => profile),\n      });\n    }\n    next();\n  };\n}\n\n\u002F\u002F Usage\napp.post('\u002Fapi\u002Fgenerate-image', requireAdobePermission('generate'), generateHandler);\napp.delete('\u002Fapi\u002Fassets\u002F:id', requireAdobePermission('delete'), deleteHandler);\n```\n\n## Output\n\n- Federated Identity with SSO (SAML\u002FOIDC) configured\n- Product Profiles created for each application role\n- Programmatic user provisioning via UMAPI\n- IdP group-to-profile sync automation\n- Application middleware enforcing Adobe permissions\n\n## Error Handling\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| SSO login redirect loop | Wrong ACS URL | Verify SAML config in Admin Console |\n| UMAPI 403 | Missing admin permission | Use system admin credentials for UMAPI |\n| Profile not applied | SCIM sync delay | Wait 5-10min for Azure\u002FGoogle sync |\n| User can't access API | Missing product profile | Assign profile in Admin Console or via UMAPI |\n\n## Resources\n\n- [Adobe Admin Console](https:\u002F\u002Fadminconsole.adobe.com)\n- [User Management API](https:\u002F\u002Fadobe.io\u002Fapis\u002Fexperienceplatform\u002Fumapi-new.html)\n- [Adobe Admin Console Roles](https:\u002F\u002Fhelpx.adobe.com\u002Fenterprise\u002Fusing\u002Froles.html)\n- [Azure AD Sync Setup](https:\u002F\u002Fhelpx.adobe.com\u002Fenterprise\u002Fusing\u002Fadd-azure-sync.html)\n- [Google Workspace Sync](https:\u002F\u002Fhelpx.adobe.com\u002Fenterprise\u002Fusing\u002Fadd-google-sync.html)\n\n## Next Steps\n\nFor major migrations, see `adobe-migration-deep-dive`.\n\n","# Adobe Enterprise RBAC\n\n## Overview\n\nConfigure enterprise-grade access control for Adobe integrations using Admin Console product profiles, User Management API (UMAPI) for programmatic user provisioning, and SCIM-based identity sync with Azure AD or Google Workspace.\n\n## Prerequisites\n\n- Adobe Enterprise or Teams subscription\n- Adobe Admin Console system administrator access\n- Identity Provider (Azure AD, Google Workspace, or Okta) for SSO\n- Understanding of SCIM 2.0 protocol\n\n## Instructions\n\n### Step 1: Set Up Federated Identity in Admin Console\n\n1. Go to https:\u002F\u002Fadminconsole.adobe.com > Settings > Identity\n2. Create a Federated ID directory\n3. Configure SSO:\n   - **Azure AD**: Admin Console > Add Azure Sync > Follow SCIM setup\n   - **Google Workspace**: Admin Console > Add Google Sync > SCIM provisioning\n   - **Generic SAML**: Upload IdP metadata XML\n\n```yaml\n# SAML Configuration Values (for your IdP)\nAdobe SP Entity ID: https:\u002F\u002Ffederatedid-na1.services.adobe.com\u002Ffederated\u002Fsaml\u002Fmetadata\nACS URL: https:\u002F\u002Ffederatedid-na1.services.adobe.com\u002Ffederated\u002Fsaml\u002FSSO\nName ID Format: urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress\n```\n\n### Step 2: Define Product Profiles (Adobe's RBAC Mechanism)\n\nProduct Profiles in Admin Console are Adobe's native RBAC system. Create profiles that map to your application roles:\n\n| Profile Name | Adobe APIs Granted | Application Role |\n|-------------|-------------------|------------------|\n| `API-Developers` | Firefly, PDF Services, Photoshop | Full API access |\n| `API-Viewers` | PDF Services (read-only) | Report viewers |\n| `API-Automation` | PDF Services, Document Generation | CI\u002FCD service accounts |\n| `API-Admin` | All APIs + Admin Console | Platform administrators |\n\n### Step 3: Programmatic User Management via UMAPI\n\n```typescript\n\u002F\u002F src\u002Fadobe\u002Fuser-management.ts\n\u002F\u002F Adobe User Management API (UMAPI) — manage users and product profile assignments\n\nconst UMAPI_BASE = 'https:\u002F\u002Fusermanagement.adobe.io\u002Fv2\u002Fusermanagement';\n\ninterface UmapiUser {\n  email: string;\n  firstname: string;\n  lastname: string;\n  country: string;\n}\n\nexport async function addUserToProductProfile(\n  user: UmapiUser,\n  productProfile: string\n): Promise\u003Cvoid> {\n  const token = await getAccessToken();\n\n  const response = await fetch(`${UMAPI_BASE}\u002Faction\u002F${process.env.ADOBE_IMS_ORG_ID}`, {\n    method: 'POST',\n    headers: {\n      'Authorization': `Bearer ${token}`,\n      'x-api-key': process.env.ADOBE_CLIENT_ID!,\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify([{\n      user: user.email,\n      requestID: `req-${Date.now()}`,\n      do: [\n        {\n          addAdobeID: {\n            email: user.email,\n            firstname: user.firstname,\n            lastname: user.lastname,\n            country: user.country,\n          },\n        },\n        {\n          add: {\n            product: [productProfile],\n          },\n        },\n      ],\n    }]),\n  });\n\n  if (!response.ok) throw new Error(`UMAPI error: ${await response.text()}`);\n  const result = await response.json();\n  console.log(`User ${user.email} added to profile ${productProfile}:`, result);\n}\n\nexport async function removeUserFromProductProfile(\n  email: string,\n  productProfile: string\n): Promise\u003Cvoid> {\n  const token = await getAccessToken();\n\n  const response = await fetch(`${UMAPI_BASE}\u002Faction\u002F${process.env.ADOBE_IMS_ORG_ID}`, {\n    method: 'POST',\n    headers: {\n      'Authorization': `Bearer ${token}`,\n      'x-api-key': process.env.ADOBE_CLIENT_ID!,\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify([{\n      user: email,\n      requestID: `req-${Date.now()}`,\n      do: [{\n        remove: {\n          product: [productProfile],\n        },\n      }],\n    }]),\n  });\n\n  if (!response.ok) throw new Error(`UMAPI error: ${await response.text()}`);\n}\n```\n\n### Step 4: Map IdP Groups to Adobe Product Profiles\n\n```typescript\n\u002F\u002F src\u002Fadobe\u002Fgroup-sync.ts\n\u002F\u002F Sync IdP group membership to Adobe Product Profiles\n\nconst GROUP_TO_PROFILE: Record\u003Cstring, string[]> = {\n  'Engineering':        ['API-Developers'],\n  'Data-Science':       ['API-Developers', 'API-Viewers'],\n  'Platform-Admins':    ['API-Admin'],\n  'CI-CD-Services':     ['API-Automation'],\n  'Business-Analysts':  ['API-Viewers'],\n};\n\nexport async function syncGroupMembership(\n  userEmail: string,\n  idpGroups: string[]\n): Promise\u003Cvoid> {\n  \u002F\u002F Determine which Adobe profiles this user should have\n  const targetProfiles = new Set\u003Cstring>();\n  for (const group of idpGroups) {\n    const profiles = GROUP_TO_PROFILE[group];\n    if (profiles) profiles.forEach(p => targetProfiles.add(p));\n  }\n\n  \u002F\u002F Get current Adobe profile assignments\n  const currentProfiles = await getUserProfiles(userEmail);\n\n  \u002F\u002F Add missing profiles\n  for (const profile of targetProfiles) {\n    if (!currentProfiles.includes(profile)) {\n      await addUserToProductProfile(\n        { email: userEmail, firstname: '', lastname: '', country: 'US' },\n        profile\n      );\n    }\n  }\n\n  \u002F\u002F Remove stale profiles\n  for (const profile of currentProfiles) {\n    if (!targetProfiles.has(profile)) {\n      await removeUserFromProductProfile(userEmail, profile);\n    }\n  }\n}\n```\n\n### Step 5: Application-Level Permission Check\n\n```typescript\n\u002F\u002F src\u002Fmiddleware\u002Fadobe-auth.ts\n\u002F\u002F Check that the current user's Adobe profile grants the required permission\n\ninterface AdobeUserContext {\n  email: string;\n  profiles: string[];  \u002F\u002F Product profiles from SSO token claims\n}\n\nconst PROFILE_PERMISSIONS: Record\u003Cstring, string[]> = {\n  'API-Developers': ['read', 'write', 'generate', 'extract'],\n  'API-Viewers':    ['read', 'extract'],\n  'API-Automation': ['read', 'write', 'extract', 'generate'],\n  'API-Admin':      ['read', 'write', 'generate', 'extract', 'delete', 'admin'],\n};\n\nfunction checkAdobePermission(user: AdobeUserContext, requiredPerm: string): boolean {\n  return user.profiles.some(profile => {\n    const perms = PROFILE_PERMISSIONS[profile];\n    return perms?.includes(requiredPerm);\n  });\n}\n\n\u002F\u002F Express middleware\nfunction requireAdobePermission(permission: string) {\n  return (req: any, res: any, next: any) => {\n    if (!checkAdobePermission(req.user, permission)) {\n      return res.status(403).json({\n        error: 'Forbidden',\n        message: `Missing Adobe permission: ${permission}`,\n        requiredProfile: Object.entries(PROFILE_PERMISSIONS)\n          .filter(([_, perms]) => perms.includes(permission))\n          .map(([profile]) => profile),\n      });\n    }\n    next();\n  };\n}\n\n\u002F\u002F Usage\napp.post('\u002Fapi\u002Fgenerate-image', requireAdobePermission('generate'), generateHandler);\napp.delete('\u002Fapi\u002Fassets\u002F:id', requireAdobePermission('delete'), deleteHandler);\n```\n\n## Output\n\n- Federated Identity with SSO (SAML\u002FOIDC) configured\n- Product Profiles created for each application role\n- Programmatic user provisioning via UMAPI\n- IdP group-to-profile sync automation\n- Application middleware enforcing Adobe permissions\n\n## Error Handling\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| SSO login redirect loop | Wrong ACS URL | Verify SAML config in Admin Console |\n| UMAPI 403 | Missing admin permission | Use system admin credentials for UMAPI |\n| Profile not applied | SCIM sync delay | Wait 5-10min for Azure\u002FGoogle sync |\n| User can't access API | Missing product profile | Assign profile in Admin Console or via UMAPI |\n\n## Resources\n\n- [Adobe Admin Console](https:\u002F\u002Fadminconsole.adobe.com)\n- [User Management API](https:\u002F\u002Fadobe.io\u002Fapis\u002Fexperienceplatform\u002Fumapi-new.html)\n- [Adobe Admin Console Roles](https:\u002F\u002Fhelpx.adobe.com\u002Fenterprise\u002Fusing\u002Froles.html)\n- [Azure AD Sync Setup](https:\u002F\u002Fhelpx.adobe.com\u002Fenterprise\u002Fusing\u002Fadd-azure-sync.html)\n- [Google Workspace Sync](https:\u002F\u002Fhelpx.adobe.com\u002Fenterprise\u002Fusing\u002Fadd-google-sync.html)\n\n## Next Steps\n\nFor major migrations, see `adobe-migration-deep-dive`.\n\n",{"name":5,"tags":49,"author":51,"license":15,"version":52,"description":53,"allowed-tools":54,"compatible-with":55},[50,36,25],"saas","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Configure Adobe enterprise identity with Admin Console SCIM provisioning,\nUser Management API, product profile-based RBAC, and Federated ID\nwith Azure AD or Google Workspace.\nTrigger with phrases like \"adobe SSO\", \"adobe RBAC\",\n\"adobe enterprise\", \"adobe roles\", \"adobe SCIM\", \"adobe user management\".\n","Read, Write, Edit","claude-code","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fadobe-enterprise-rbac",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 adobe-enterprise-rbac",{"tool":71,"command":72},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill adobe-enterprise-rbac",{"tool":74,"command":75},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill adobe-enterprise-rbac","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fadobe-enterprise-rbac\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]]