[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EHBDPWNCV65S5DF8GG9JH0":3,"skill-same:01M6EHBDPWNCV65S5DF8GG9JH0":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":31,"publishedAt":51,"linkOnly":52,"markdownContent":53,"markdownBody":54,"frontMatter":55,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M6EHBDPWNCV65S5DF8GG9JH0","aliyun-api-ref",null,"Alibaba Cloud API reference for developing aero-cli. Use this skill when adding new cloud provider features, fixing API calls, or extending FC\u002FRDS\u002FRedis\u002FOSS\u002FDNS\u002FVPC integrations. Contains SDK usage patterns, API signatures, and error handling conventions specific to this project.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fagents-infrastructure\u002Falicloud-agent-skills\u002Falicloud-api-ref\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"aliyun api ref","api","use","oss","error","project","conventions","signatures","patterns","provider","reference","cli","integrations","vpc","dns","cloud","redis","error handling","sdk","2026-11-10 10:12:30",false,"---\nname: aliyun-api-ref\ndescription: Alibaba Cloud API reference for developing aero-cli. Use this skill when adding new cloud provider features, fixing API calls, or extending FC\u002FRDS\u002FRedis\u002FOSS\u002FDNS\u002FVPC integrations. Contains SDK usage patterns, API signatures, and error handling conventions specific to this project.\n---\n\n# Alibaba Cloud API Development Reference\n\n## When to use this skill\n\nUse this skill when:\n- Adding or modifying Alibaba Cloud API calls in `src\u002Fproviders\u002F`\n- Implementing new cloud service integrations (FC, RDS, Redis, OSS, DNS, VPC)\n- Debugging API errors or handling new error codes\n- Understanding SDK constructor patterns and authentication flow\n- Working with pagination, retry logic, or async polling patterns\n\n## Project Architecture\n\n```\nsrc\u002Fproviders\u002F       # Cloud service provider modules\n  fc.ts              # Function Compute 3.0 (deploy, invoke, versions, aliases)\n  infra.ts           # RDS Serverless (database provisioning)\n  redis.ts           # Tair\u002FRedis Serverless KV (cache provisioning)\n  oss.ts             # Object Storage Service (static site deploy)\n  domain.ts          # DNS + FC custom domain binding\n  ssl.ts             # Let's Encrypt ACME + FC HTTPS binding\n  vpc.ts             # VPC \u002F VSwitch \u002F SecurityGroup management\n  logs.ts            # SLS log streaming\nsrc\u002Futils\u002F\n  sdk.ts             # Shared SDK constructor resolver + FC client factory\n  retry.ts           # Exponential backoff retry wrapper\n  config.ts          # Auth (AK\u002FSK) and project config management\n  errors.ts          # Error classification (conflict, not-found, etc.)\n```\n\n## SDK Usage Patterns\n\n### Constructor Resolution\n\nAll Alibaba Cloud SDKs are loaded via `resolveSdkCtor()` to handle ESM\u002FCJS interop:\n\n```typescript\nimport Vpc, * as $Vpc from '@alicloud\u002Fvpc20160428';\nimport { resolveSdkCtor } from '..\u002Futils\u002Fsdk';\n\nconst VpcClientCtor = resolveSdkCtor\u003CVpc>(Vpc, '@alicloud\u002Fvpc20160428');\n```\n\n### Client Instantiation\n\nEach provider creates its client with `@alicloud\u002Fopenapi-client` Config:\n\n```typescript\nimport * as $OpenApi from '@alicloud\u002Fopenapi-client';\n\nconst client = new VpcClientCtor(new $OpenApi.Config({\n  accessKeyId: auth.ak,\n  accessKeySecret: auth.sk,\n  regionId,\n  endpoint: `vpc.${regionId}.aliyuncs.com`\n}));\n```\n\n### Shared FC Client\n\nFC client creation is centralized in `utils\u002Fsdk.ts`:\n\n```typescript\nimport { createSharedFcClient } from '..\u002Futils\u002Fsdk';\n\nconst { auth, client } = createSharedFcClient();\n\u002F\u002F or with explicit auth:\nconst { client } = createSharedFcClient(authConfig);\n```\n\n## Authentication\n\nCredentials are stored in `~\u002F.ali-cli\u002Fauth.json` (mode 0o600):\n\n```typescript\ninterface AuthConfig {\n  accountId: string;  \u002F\u002F Alibaba Cloud main account ID\n  ak: string;         \u002F\u002F AccessKey ID\n  sk: string;         \u002F\u002F AccessKey Secret\n  region: string;     \u002F\u002F Default region (e.g. cn-hangzhou)\n}\n```\n\nAccess via `Config.requireAuth()` or `Config.getAuth()`.\n\n## Error Handling Conventions\n\n### Error Classification (`utils\u002Ferrors.ts`)\n\n```typescript\n\u002F\u002F Check if error is a \"resource already exists\" conflict\nisConflictError(err)  \u002F\u002F matches: AlreadyExists, Conflict, Duplicate, Exist\n\n\u002F\u002F Format error message for display\nformatErrorMessage(err)  \u002F\u002F extracts .message from unknown error\n```\n\n### Retry Pattern (`utils\u002Fretry.ts`)\n\n```typescript\nimport { withRetry } from '..\u002Futils\u002Fretry';\n\nconst result = await withRetry(\n  () => client.someApiCall(request),\n  { maxAttempts: 3, baseDelayMs: 1000 }\n);\n```\n\nRetries on: Throttling, timeout, ECONNRESET, service unavailable.\n\n### Empty Catch Blocks\n\nWhen intentionally ignoring errors, always add a comment explaining why:\n\n```typescript\n} catch { \u002F* role check may fail due to permissions, proceed to create attempt *\u002F }\n```\n\n## Pagination Pattern\n\nUse bounded `for` loops with `MAX_PAGES` guard, never `while(true)`:\n\n```typescript\nconst MAX_PAGES = 50;\nfor (let page = 0; page \u003C MAX_PAGES; page += 1) {\n  const response = await client.listSomething(new ListRequest({\n    limit: 100,\n    nextToken\n  }));\n  const rows = response.body?.items || [];\n  results.push(...rows);\n  nextToken = response.body?.nextToken;\n  if (!nextToken || rows.length === 0) break;\n}\n```\n\n## API Quick Reference\n\nDetailed API tables are in `references\u002F`:\n\n- `references\u002Fref_fc_apis.md` — Function Compute 3.0 (86 APIs, version 2023-03-30)\n- `references\u002Fref_rds_apis.md` — RDS instance\u002Fdatabase\u002Faccount management\n- `references\u002Fref_redis_apis.md` — Redis\u002FTair instance management (146 APIs, version 2015-01-01)\n- `references\u002Fref_oss_apis.md` — Object Storage bucket\u002Fobject operations\n- `references\u002Fref_dns_apis.md` — Cloud DNS domain\u002Frecord management (235 APIs, version 2015-01-09)\n\n### Key APIs Used by This Project\n\n| Provider | Primary APIs | SDK Package |\n|----------|-------------|-------------|\n| FC | CreateFunction, UpdateFunction, InvokeFunction, PublishFunctionVersion, UpdateAlias, CreateCustomDomain | `@alicloud\u002Ffc20230330` |\n| RDS | CreateDBInstance, DescribeDBInstances, CreateAccount, CreateDatabase, DescribeAvailableZones | `@alicloud\u002Frds20140815` |\n| Redis | CreateTairInstance, DescribeInstances, CreateAccount, ResetAccountPassword | `@alicloud\u002Fr-kvstore20150101` |\n| OSS | putBucket, put (object), list, getBucketInfo | `ali-oss` |\n| DNS | AddDomainRecord, UpdateDomainRecord, DeleteDomainRecord, DescribeSubDomainRecords | `@alicloud\u002Falidns20150109` |\n| VPC | DescribeVpcs, CreateVSwitch, DescribeVSwitches | `@alicloud\u002Fvpc20160428` |\n| ECS | CreateSecurityGroup, AuthorizeSecurityGroup | `@alicloud\u002Fecs20140526` |\n| SLS | GetLogs | `@alicloud\u002Fsls20201230` |\n\n## Provider Implementation Checklist\n\nWhen adding a new provider or extending an existing one:\n\n1. Use `resolveSdkCtor()` for SDK constructor resolution\n2. Create client with proper `endpoint`, `connectTimeout`, `readTimeout`\n3. Use `withRetry()` for API calls that may face transient failures\n4. Use bounded pagination (never `while(true)`)\n5. Classify errors with `isConflictError()` where applicable\n6. Add comments to any intentionally empty catch blocks\n7. Store sensitive outputs (passwords, connection strings) in `project.envs`\n8. Mask credentials in CLI output via `maskConnectionString()`\n\n","# Alibaba Cloud API Development Reference\n\n## When to use this skill\n\nUse this skill when:\n- Adding or modifying Alibaba Cloud API calls in `src\u002Fproviders\u002F`\n- Implementing new cloud service integrations (FC, RDS, Redis, OSS, DNS, VPC)\n- Debugging API errors or handling new error codes\n- Understanding SDK constructor patterns and authentication flow\n- Working with pagination, retry logic, or async polling patterns\n\n## Project Architecture\n\n```\nsrc\u002Fproviders\u002F       # Cloud service provider modules\n  fc.ts              # Function Compute 3.0 (deploy, invoke, versions, aliases)\n  infra.ts           # RDS Serverless (database provisioning)\n  redis.ts           # Tair\u002FRedis Serverless KV (cache provisioning)\n  oss.ts             # Object Storage Service (static site deploy)\n  domain.ts          # DNS + FC custom domain binding\n  ssl.ts             # Let's Encrypt ACME + FC HTTPS binding\n  vpc.ts             # VPC \u002F VSwitch \u002F SecurityGroup management\n  logs.ts            # SLS log streaming\nsrc\u002Futils\u002F\n  sdk.ts             # Shared SDK constructor resolver + FC client factory\n  retry.ts           # Exponential backoff retry wrapper\n  config.ts          # Auth (AK\u002FSK) and project config management\n  errors.ts          # Error classification (conflict, not-found, etc.)\n```\n\n## SDK Usage Patterns\n\n### Constructor Resolution\n\nAll Alibaba Cloud SDKs are loaded via `resolveSdkCtor()` to handle ESM\u002FCJS interop:\n\n```typescript\nimport Vpc, * as $Vpc from '@alicloud\u002Fvpc20160428';\nimport { resolveSdkCtor } from '..\u002Futils\u002Fsdk';\n\nconst VpcClientCtor = resolveSdkCtor\u003CVpc>(Vpc, '@alicloud\u002Fvpc20160428');\n```\n\n### Client Instantiation\n\nEach provider creates its client with `@alicloud\u002Fopenapi-client` Config:\n\n```typescript\nimport * as $OpenApi from '@alicloud\u002Fopenapi-client';\n\nconst client = new VpcClientCtor(new $OpenApi.Config({\n  accessKeyId: auth.ak,\n  accessKeySecret: auth.sk,\n  regionId,\n  endpoint: `vpc.${regionId}.aliyuncs.com`\n}));\n```\n\n### Shared FC Client\n\nFC client creation is centralized in `utils\u002Fsdk.ts`:\n\n```typescript\nimport { createSharedFcClient } from '..\u002Futils\u002Fsdk';\n\nconst { auth, client } = createSharedFcClient();\n\u002F\u002F or with explicit auth:\nconst { client } = createSharedFcClient(authConfig);\n```\n\n## Authentication\n\nCredentials are stored in `~\u002F.ali-cli\u002Fauth.json` (mode 0o600):\n\n```typescript\ninterface AuthConfig {\n  accountId: string;  \u002F\u002F Alibaba Cloud main account ID\n  ak: string;         \u002F\u002F AccessKey ID\n  sk: string;         \u002F\u002F AccessKey Secret\n  region: string;     \u002F\u002F Default region (e.g. cn-hangzhou)\n}\n```\n\nAccess via `Config.requireAuth()` or `Config.getAuth()`.\n\n## Error Handling Conventions\n\n### Error Classification (`utils\u002Ferrors.ts`)\n\n```typescript\n\u002F\u002F Check if error is a \"resource already exists\" conflict\nisConflictError(err)  \u002F\u002F matches: AlreadyExists, Conflict, Duplicate, Exist\n\n\u002F\u002F Format error message for display\nformatErrorMessage(err)  \u002F\u002F extracts .message from unknown error\n```\n\n### Retry Pattern (`utils\u002Fretry.ts`)\n\n```typescript\nimport { withRetry } from '..\u002Futils\u002Fretry';\n\nconst result = await withRetry(\n  () => client.someApiCall(request),\n  { maxAttempts: 3, baseDelayMs: 1000 }\n);\n```\n\nRetries on: Throttling, timeout, ECONNRESET, service unavailable.\n\n### Empty Catch Blocks\n\nWhen intentionally ignoring errors, always add a comment explaining why:\n\n```typescript\n} catch { \u002F* role check may fail due to permissions, proceed to create attempt *\u002F }\n```\n\n## Pagination Pattern\n\nUse bounded `for` loops with `MAX_PAGES` guard, never `while(true)`:\n\n```typescript\nconst MAX_PAGES = 50;\nfor (let page = 0; page \u003C MAX_PAGES; page += 1) {\n  const response = await client.listSomething(new ListRequest({\n    limit: 100,\n    nextToken\n  }));\n  const rows = response.body?.items || [];\n  results.push(...rows);\n  nextToken = response.body?.nextToken;\n  if (!nextToken || rows.length === 0) break;\n}\n```\n\n## API Quick Reference\n\nDetailed API tables are in `references\u002F`:\n\n- `references\u002Fref_fc_apis.md` — Function Compute 3.0 (86 APIs, version 2023-03-30)\n- `references\u002Fref_rds_apis.md` — RDS instance\u002Fdatabase\u002Faccount management\n- `references\u002Fref_redis_apis.md` — Redis\u002FTair instance management (146 APIs, version 2015-01-01)\n- `references\u002Fref_oss_apis.md` — Object Storage bucket\u002Fobject operations\n- `references\u002Fref_dns_apis.md` — Cloud DNS domain\u002Frecord management (235 APIs, version 2015-01-09)\n\n### Key APIs Used by This Project\n\n| Provider | Primary APIs | SDK Package |\n|----------|-------------|-------------|\n| FC | CreateFunction, UpdateFunction, InvokeFunction, PublishFunctionVersion, UpdateAlias, CreateCustomDomain | `@alicloud\u002Ffc20230330` |\n| RDS | CreateDBInstance, DescribeDBInstances, CreateAccount, CreateDatabase, DescribeAvailableZones | `@alicloud\u002Frds20140815` |\n| Redis | CreateTairInstance, DescribeInstances, CreateAccount, ResetAccountPassword | `@alicloud\u002Fr-kvstore20150101` |\n| OSS | putBucket, put (object), list, getBucketInfo | `ali-oss` |\n| DNS | AddDomainRecord, UpdateDomainRecord, DeleteDomainRecord, DescribeSubDomainRecords | `@alicloud\u002Falidns20150109` |\n| VPC | DescribeVpcs, CreateVSwitch, DescribeVSwitches | `@alicloud\u002Fvpc20160428` |\n| ECS | CreateSecurityGroup, AuthorizeSecurityGroup | `@alicloud\u002Fecs20140526` |\n| SLS | GetLogs | `@alicloud\u002Fsls20201230` |\n\n## Provider Implementation Checklist\n\nWhen adding a new provider or extending an existing one:\n\n1. Use `resolveSdkCtor()` for SDK constructor resolution\n2. Create client with proper `endpoint`, `connectTimeout`, `readTimeout`\n3. Use `withRetry()` for API calls that may face transient failures\n4. Use bounded pagination (never `while(true)`)\n5. Classify errors with `isConflictError()` where applicable\n6. Add comments to any intentionally empty catch blocks\n7. Store sensitive outputs (passwords, connection strings) in `project.envs`\n8. Mask credentials in CLI output via `maskConnectionString()`\n\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fagents-infrastructure\u002Falicloud-agent-skills\u002Falicloud-api-ref",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 aliyun-api-ref",{"tool":71,"command":72},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill aliyun-api-ref",{"tool":74,"command":75},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill aliyun-api-ref","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fagents-infrastructure\u002Falicloud-agent-skills\u002Falicloud-api-ref\u002FSKILL.md",true,[],[80,90,100,108,114,121],{"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":86,"publishedAt":51},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[85],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[87,88,89],"model","model hierarchy","model hierarchy skill",{"skillNo":91,"name":92,"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":93,"categories":94,"keywords":96,"publishedAt":51},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[95],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[97,98,99],"MCP","zoom","zoom mcp",{"skillNo":101,"name":102,"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":103,"categories":104,"keywords":105,"publishedAt":51},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[50,106,107,98],"zoom apps sdk","apps",{"skillNo":109,"name":110,"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":111,"categories":112,"keywords":113,"publishedAt":51},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[110],{"skillNo":115,"name":116,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":51},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[119],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[116],{"skillNo":122,"name":123,"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":124,"categories":125,"keywords":126,"publishedAt":51},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[123]]