[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EAY5HP15FPQSZCAJP511VC":3,"skill-same:01M6EAY5HP15FPQSZCAJP511VC":213},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6EAY5HP15FPQSZCAJP511VC","typescript-magician",null,"Designs complex generic types, refactors `any` types to strict alternatives, creates type guards and utility types, and resolves TypeScript compiler errors. Use when the user asks about TypeScript (TS) types, generics, type inference, type guards, removing `any` types, strict typing, type errors, `infer`, `extends`, conditional types, mapped types, template literal types, branded\u002Fopaque types, or utility types like `Partial`, `Record`, `ReturnType`, and `Awaited`.","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\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\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],"typescript","typescript magician","inference","compiler","Safety","template","user","use","Literal","record","type","infer","utility","type-safety","2026-11-10 10:12:30",false,"---\nname: typescript-magician\ndescription: Designs complex generic types, refactors `any` types to strict alternatives, creates type guards and utility types, and resolves TypeScript compiler errors. Use when the user asks about TypeScript (TS) types, generics, type inference, type guards, removing `any` types, strict typing, type errors, `infer`, `extends`, conditional types, mapped types, template literal types, branded\u002Fopaque types, or utility types like `Partial`, `Record`, `ReturnType`, and `Awaited`.\nmetadata:\n  tags: typescript, types, generics, type-safety, advanced-typescript\n---\n\n## When to use\n\nUse this skill for:\n- TypeScript errors and type challenges\n- Eliminating `any` types from codebases\n- Complex generics and type inference issues\n- When strict typing is needed\n\n## Instructions\n\nWhen invoked:\n1. Run `tsc --noEmit` to capture the full error output before making changes\n2. Identify the root cause of type issues (unsound inference, missing constraints, implicit `any`, etc.)\n3. Craft precise, type-safe solutions using advanced TypeScript features\n4. Eliminate all `any` types with proper typing — validate each replacement still satisfies call sites\n5. Confirm the fix compiles cleanly with a second `tsc --noEmit` pass\n\nCapabilities include:\n- Advanced generics and conditional types\n- Template literal types and mapped types\n- Utility types and type manipulation\n- Brand types and nominal typing\n- Complex inference patterns\n- Variance and distribution rules\n- Module augmentation and declaration merging\n\nFor every TypeScript challenge:\n- Explain the type theory behind the problem\n- Provide multiple solution approaches when applicable\n- Show before\u002Fafter type representations\n- Include comprehensive type tests\n- Ensure full IntelliSense support\n\n## Quick Examples\n\n### Eliminating `any` with generics\n\n**Before**\n```ts\nfunction getProperty(obj: any, key: string): any {\n  return obj[key];\n}\n```\n\n**After**\n```ts\nfunction getProperty\u003CT, K extends keyof T>(obj: T, key: K): T[K] {\n  return obj[key];\n}\n\u002F\u002F getProperty({ name: \"Alice\" }, \"name\") → inferred as string ✓\n```\n\n### Narrowing an unknown API response\n\n**Before**\n```ts\nasync function fetchUser(): Promise\u003Cany> {\n  const res = await fetch(\"\u002Fapi\u002Fuser\");\n  return res.json();\n}\n```\n\n**After**\n```ts\ninterface User { id: number; name: string }\n\nfunction isUser(value: unknown): value is User {\n  return (\n    typeof value === \"object\" &&\n    value !== null &&\n    \"id\" in value &&\n    \"name\" in value\n  );\n}\n\nasync function fetchUser(): Promise\u003CUser> {\n  const res = await fetch(\"\u002Fapi\u002Fuser\");\n  const data: unknown = await res.json();\n  if (!isUser(data)) throw new Error(\"Invalid user shape\");\n  return data;\n}\n```\n\n## Reference\n\nRead individual rule files for detailed explanations and code examples:\n\n### Core Patterns\n- [rules\u002Fas-const-typeof.md](rules\u002Fas-const-typeof.md) - Deriving types from runtime values using `as const` and `typeof`\n- [rules\u002Farray-index-access.md](rules\u002Farray-index-access.md) - Accessing array element types using `[number]` indexing\n- [rules\u002Futility-types.md](rules\u002Futility-types.md) - Built-in utility types: Parameters, ReturnType, Awaited, Omit, Partial, Record\n\n### Advanced Generics\n- [rules\u002Fgenerics-basics.md](rules\u002Fgenerics-basics.md) - Fundamentals of generic types, constraints, and inference\n- [rules\u002Fbuilder-pattern.md](rules\u002Fbuilder-pattern.md) - Type-safe builder pattern with chainable methods\n- [rules\u002Fdeep-inference.md](rules\u002Fdeep-inference.md) - Achieving deep type inference with F.Narrow and const type parameters\n\n### Type-Level Programming\n- [rules\u002Fconditional-types.md](rules\u002Fconditional-types.md) - Conditional types for type-level if\u002Felse logic\n- [rules\u002Finfer-keyword.md](rules\u002Finfer-keyword.md) - Using `infer` to extract types within conditional types\n- [rules\u002Ftemplate-literal-types.md](rules\u002Ftemplate-literal-types.md) - String manipulation at the type level\n- [rules\u002Fmapped-types.md](rules\u002Fmapped-types.md) - Creating new types by transforming existing type properties\n\n### Type Safety Patterns\n- [rules\u002Fopaque-types.md](rules\u002Fopaque-types.md) - Brand types and opaque types for type-safe identifiers\n- [rules\u002Ftype-narrowing.md](rules\u002Ftype-narrowing.md) - Narrowing types through control flow analysis\n- [rules\u002Ffunction-overloads.md](rules\u002Ffunction-overloads.md) - Using function overloads for complex function signatures\n\n### Debugging\n- [rules\u002Ferror-diagnosis.md](rules\u002Ferror-diagnosis.md) - Strategies for diagnosing and understanding TypeScript type errors\n","## When to use\n\nUse this skill for:\n- TypeScript errors and type challenges\n- Eliminating `any` types from codebases\n- Complex generics and type inference issues\n- When strict typing is needed\n\n## Instructions\n\nWhen invoked:\n1. Run `tsc --noEmit` to capture the full error output before making changes\n2. Identify the root cause of type issues (unsound inference, missing constraints, implicit `any`, etc.)\n3. Craft precise, type-safe solutions using advanced TypeScript features\n4. Eliminate all `any` types with proper typing — validate each replacement still satisfies call sites\n5. Confirm the fix compiles cleanly with a second `tsc --noEmit` pass\n\nCapabilities include:\n- Advanced generics and conditional types\n- Template literal types and mapped types\n- Utility types and type manipulation\n- Brand types and nominal typing\n- Complex inference patterns\n- Variance and distribution rules\n- Module augmentation and declaration merging\n\nFor every TypeScript challenge:\n- Explain the type theory behind the problem\n- Provide multiple solution approaches when applicable\n- Show before\u002Fafter type representations\n- Include comprehensive type tests\n- Ensure full IntelliSense support\n\n## Quick Examples\n\n### Eliminating `any` with generics\n\n**Before**\n```ts\nfunction getProperty(obj: any, key: string): any {\n  return obj[key];\n}\n```\n\n**After**\n```ts\nfunction getProperty\u003CT, K extends keyof T>(obj: T, key: K): T[K] {\n  return obj[key];\n}\n\u002F\u002F getProperty({ name: \"Alice\" }, \"name\") → inferred as string ✓\n```\n\n### Narrowing an unknown API response\n\n**Before**\n```ts\nasync function fetchUser(): Promise\u003Cany> {\n  const res = await fetch(\"\u002Fapi\u002Fuser\");\n  return res.json();\n}\n```\n\n**After**\n```ts\ninterface User { id: number; name: string }\n\nfunction isUser(value: unknown): value is User {\n  return (\n    typeof value === \"object\" &&\n    value !== null &&\n    \"id\" in value &&\n    \"name\" in value\n  );\n}\n\nasync function fetchUser(): Promise\u003CUser> {\n  const res = await fetch(\"\u002Fapi\u002Fuser\");\n  const data: unknown = await res.json();\n  if (!isUser(data)) throw new Error(\"Invalid user shape\");\n  return data;\n}\n```\n\n## Reference\n\nRead individual rule files for detailed explanations and code examples:\n\n### Core Patterns\n- [rules\u002Fas-const-typeof.md](rules\u002Fas-const-typeof.md) - Deriving types from runtime values using `as const` and `typeof`\n- [rules\u002Farray-index-access.md](rules\u002Farray-index-access.md) - Accessing array element types using `[number]` indexing\n- [rules\u002Futility-types.md](rules\u002Futility-types.md) - Built-in utility types: Parameters, ReturnType, Awaited, Omit, Partial, Record\n\n### Advanced Generics\n- [rules\u002Fgenerics-basics.md](rules\u002Fgenerics-basics.md) - Fundamentals of generic types, constraints, and inference\n- [rules\u002Fbuilder-pattern.md](rules\u002Fbuilder-pattern.md) - Type-safe builder pattern with chainable methods\n- [rules\u002Fdeep-inference.md](rules\u002Fdeep-inference.md) - Achieving deep type inference with F.Narrow and const type parameters\n\n### Type-Level Programming\n- [rules\u002Fconditional-types.md](rules\u002Fconditional-types.md) - Conditional types for type-level if\u002Felse logic\n- [rules\u002Finfer-keyword.md](rules\u002Finfer-keyword.md) - Using `infer` to extract types within conditional types\n- [rules\u002Ftemplate-literal-types.md](rules\u002Ftemplate-literal-types.md) - String manipulation at the type level\n- [rules\u002Fmapped-types.md](rules\u002Fmapped-types.md) - Creating new types by transforming existing type properties\n\n### Type Safety Patterns\n- [rules\u002Fopaque-types.md](rules\u002Fopaque-types.md) - Brand types and opaque types for type-safe identifiers\n- [rules\u002Ftype-narrowing.md](rules\u002Ftype-narrowing.md) - Narrowing types through control flow analysis\n- [rules\u002Ffunction-overloads.md](rules\u002Ffunction-overloads.md) - Using function overloads for complex function signatures\n\n### Debugging\n- [rules\u002Ferror-diagnosis.md](rules\u002Ferror-diagnosis.md) - Strategies for diagnosing and understanding TypeScript type errors\n",{"name":5,"metadata":43,"description":7},{"tags":44},"typescript, types, generics, type-safety, advanced-typescript","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician",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":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill typescript-magician",{"tool":60,"command":61},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill typescript-magician",{"tool":63,"command":64},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill typescript-magician","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002FSKILL.md",true,[68,74,80,86,90,94,98,102,106,110,114,118,122,126,130,134,138,142,146,150,154,158,162,165,169,173,177,181,185,189,193,197,201,205,209],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"customize.toml","OTHER","其他",1615,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fcustomize.toml",{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"data\u002Fdomain-complexity.csv","ASSET","资产文件",7324,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fdata\u002Fdomain-complexity.csv",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"data\u002Fprd-purpose.md","REFERENCE","参考文档",7246,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fdata\u002Fprd-purpose.md",{"path":87,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":88,"sourceHtmlUrl":89},"data\u002Fproject-types.csv",3144,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fdata\u002Fproject-types.csv",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"rules\u002Farray-index-access.md",4923,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Farray-index-access.md",{"path":95,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":96,"sourceHtmlUrl":97},"rules\u002Fas-const-typeof.md",4742,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Fas-const-typeof.md",{"path":99,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":100,"sourceHtmlUrl":101},"rules\u002Fbuilder-pattern.md",8179,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Fbuilder-pattern.md",{"path":103,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":104,"sourceHtmlUrl":105},"rules\u002Fconditional-types.md",7033,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Fconditional-types.md",{"path":107,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":108,"sourceHtmlUrl":109},"rules\u002Fdeep-inference.md",6903,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Fdeep-inference.md",{"path":111,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":112,"sourceHtmlUrl":113},"rules\u002Ferror-diagnosis.md",7912,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Ferror-diagnosis.md",{"path":115,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":116,"sourceHtmlUrl":117},"rules\u002Ffunction-overloads.md",7588,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Ffunction-overloads.md",{"path":119,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":120,"sourceHtmlUrl":121},"rules\u002Fgenerics-basics.md",7076,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Fgenerics-basics.md",{"path":123,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":124,"sourceHtmlUrl":125},"rules\u002Finfer-keyword.md",7321,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Finfer-keyword.md",{"path":127,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":128,"sourceHtmlUrl":129},"rules\u002Fmapped-types.md",7504,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Fmapped-types.md",{"path":131,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":132,"sourceHtmlUrl":133},"rules\u002Fopaque-types.md",7114,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Fopaque-types.md",{"path":135,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":136,"sourceHtmlUrl":137},"rules\u002Ftemplate-literal-types.md",7499,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Ftemplate-literal-types.md",{"path":139,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":140,"sourceHtmlUrl":141},"rules\u002Ftype-narrowing.md",8675,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Ftype-narrowing.md",{"path":143,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":144,"sourceHtmlUrl":145},"rules\u002Futility-types.md",6625,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Frules\u002Futility-types.md",{"path":147,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":148,"sourceHtmlUrl":149},"steps-c\u002Fstep-01-init.md",9683,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-01-init.md",{"path":151,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":152,"sourceHtmlUrl":153},"steps-c\u002Fstep-01b-continue.md",5345,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-01b-continue.md",{"path":155,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":156,"sourceHtmlUrl":157},"steps-c\u002Fstep-02-discovery.md",8441,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-02-discovery.md",{"path":159,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":160,"sourceHtmlUrl":161},"steps-c\u002Fstep-02b-vision.md",7015,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-02b-vision.md",{"path":163,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":128,"sourceHtmlUrl":164},"steps-c\u002Fstep-02c-executive-summary.md","https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-02c-executive-summary.md",{"path":166,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":167,"sourceHtmlUrl":168},"steps-c\u002Fstep-03-success.md",9453,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-03-success.md",{"path":170,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":171,"sourceHtmlUrl":172},"steps-c\u002Fstep-04-journeys.md",9305,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-04-journeys.md",{"path":174,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":175,"sourceHtmlUrl":176},"steps-c\u002Fstep-05-domain.md",7198,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-05-domain.md",{"path":178,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":179,"sourceHtmlUrl":180},"steps-c\u002Fstep-06-innovation.md",8949,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-06-innovation.md",{"path":182,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":183,"sourceHtmlUrl":184},"steps-c\u002Fstep-07-project-type.md",9094,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-07-project-type.md",{"path":186,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":187,"sourceHtmlUrl":188},"steps-c\u002Fstep-08-scoping.md",11630,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-08-scoping.md",{"path":190,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":191,"sourceHtmlUrl":192},"steps-c\u002Fstep-09-functional.md",9437,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-09-functional.md",{"path":194,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":195,"sourceHtmlUrl":196},"steps-c\u002Fstep-10-nonfunctional.md",9244,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-10-nonfunctional.md",{"path":198,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":199,"sourceHtmlUrl":200},"steps-c\u002Fstep-11-polish.md",9842,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-11-polish.md",{"path":202,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":203,"sourceHtmlUrl":204},"steps-c\u002Fstep-12-complete.md",5396,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Fsteps-c\u002Fstep-12-complete.md",{"path":206,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":207,"sourceHtmlUrl":208},"templates\u002Fprd-template.md",164,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgds-create-prd\u002Ftemplates\u002Fprd-template.md",{"path":210,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":211,"sourceHtmlUrl":212},"tile.json",651,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHarmeet10000\u002Fskills\u002Ftypescript-magician\u002Ftile.json",[214,228,238,247,253,260],{"skillNo":215,"name":216,"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":217,"categories":218,"keywords":224,"publishedAt":38},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[219],{"categoryNo":220,"categoryName":221,"taxonomyType":222,"taxonomyTypeDesc":223},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[225,226,227],"model","model hierarchy","model hierarchy skill",{"skillNo":229,"name":230,"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":231,"categories":232,"keywords":234,"publishedAt":38},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[233],{"categoryNo":220,"categoryName":221,"taxonomyType":222,"taxonomyTypeDesc":223},[235,236,237],"MCP","zoom","zoom mcp",{"skillNo":239,"name":240,"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":241,"categories":242,"keywords":243,"publishedAt":38},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[244,245,246,236],"sdk","zoom apps sdk","apps",{"skillNo":248,"name":249,"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":250,"categories":251,"keywords":252,"publishedAt":38},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[249],{"skillNo":254,"name":255,"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":256,"categories":257,"keywords":259,"publishedAt":38},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[258],{"categoryNo":220,"categoryName":221,"taxonomyType":222,"taxonomyTypeDesc":223},[255],{"skillNo":261,"name":262,"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":263,"categories":264,"keywords":265,"publishedAt":38},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[262]]