[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74YW45393DYPC2586T40WHR":3,"skill-same:01M74YW45393DYPC2586T40WHR":53},{"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":27,"commitSha":28,"skillDirectory":5,"forksCount":14,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":6,"updatedAt":32,"install":33,"resources":46},"01M74YW45393DYPC2586T40WHR","fastapi-router-py",null,"Create FastAPI routers with CRUD operations, authentication dependencies, and proper response models. Use when building REST API endpoints, creating new routes, implementing CRUD operations, or adding authenticated endpoints in FastAPI applications.","SamuelChien\u002Fmega-skills-collection","SamuelChien","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4652114?v=4","01M74KK34WVHA0P5ZYSJRDDFMG","Samuel Chien","01M74KK35FQN1N9VZ9EPTH3P2S",0,"MIT","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Ffastapi-router-py\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: fastapi-router-py\ndescription: Create FastAPI routers with CRUD operations, authentication dependencies, and proper response models. Use when building REST API endpoints, creating new routes, implementing CRUD operations, or adding authenticated endpoints in FastAPI applications.\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.0\"\n---\n\n# FastAPI Router\n\nCreate FastAPI routers following established patterns with proper authentication, response models, and HTTP status codes.\n\n## Quick Start\n\nCopy the template from [assets\u002Ftemplate.py](assets\u002Ftemplate.py) and replace placeholders:\n- `{{ResourceName}}` → PascalCase name (e.g., `Project`)\n- `{{resource_name}}` → snake_case name (e.g., `project`)\n- `{{resource_plural}}` → plural form (e.g., `projects`)\n\n## Authentication Patterns\n\n```python\n# Optional auth - returns None if not authenticated\ncurrent_user: Optional[User] = Depends(get_current_user)\n\n# Required auth - raises 401 if not authenticated\ncurrent_user: User = Depends(get_current_user_required)\n```\n\n## Response Models\n\n```python\n@router.get(\"\u002Fitems\u002F{item_id}\", response_model=Item)\nasync def get_item(item_id: str) -> Item:\n    ...\n\n@router.get(\"\u002Fitems\", response_model=list[Item])\nasync def list_items() -> list[Item]:\n    ...\n```\n\n## HTTP Status Codes\n\n```python\n@router.post(\"\u002Fitems\", status_code=status.HTTP_201_CREATED)\n@router.delete(\"\u002Fitems\u002F{id}\", status_code=status.HTTP_204_NO_CONTENT)\n```\n\n## Integration Steps\n\n1. Create router in `src\u002Fbackend\u002Fapp\u002Frouters\u002F`\n2. Mount in `src\u002Fbackend\u002Fapp\u002Fmain.py`\n3. Create corresponding Pydantic models\n4. Create service layer if needed\n5. Add frontend API functions\n\n## Best Practices\n\n1. **Pick `def` or `async def` per endpoint based on whether you call async I\u002FO;** do not mix sync and async blocking calls in one handler.\n2. **Manage long-lived resources (DB pools, HTTP clients) in `lifespan` and inject via `Depends`;** use `with`\u002F`async with` for per-request resources.\n","# FastAPI Router\n\nCreate FastAPI routers following established patterns with proper authentication, response models, and HTTP status codes.\n\n## Quick Start\n\nCopy the template from [assets\u002Ftemplate.py](assets\u002Ftemplate.py) and replace placeholders:\n- `{{ResourceName}}` → PascalCase name (e.g., `Project`)\n- `{{resource_name}}` → snake_case name (e.g., `project`)\n- `{{resource_plural}}` → plural form (e.g., `projects`)\n\n## Authentication Patterns\n\n```python\n# Optional auth - returns None if not authenticated\ncurrent_user: Optional[User] = Depends(get_current_user)\n\n# Required auth - raises 401 if not authenticated\ncurrent_user: User = Depends(get_current_user_required)\n```\n\n## Response Models\n\n```python\n@router.get(\"\u002Fitems\u002F{item_id}\", response_model=Item)\nasync def get_item(item_id: str) -> Item:\n    ...\n\n@router.get(\"\u002Fitems\", response_model=list[Item])\nasync def list_items() -> list[Item]:\n    ...\n```\n\n## HTTP Status Codes\n\n```python\n@router.post(\"\u002Fitems\", status_code=status.HTTP_201_CREATED)\n@router.delete(\"\u002Fitems\u002F{id}\", status_code=status.HTTP_204_NO_CONTENT)\n```\n\n## Integration Steps\n\n1. Create router in `src\u002Fbackend\u002Fapp\u002Frouters\u002F`\n2. Mount in `src\u002Fbackend\u002Fapp\u002Fmain.py`\n3. Create corresponding Pydantic models\n4. Create service layer if needed\n5. Add frontend API functions\n\n## Best Practices\n\n1. **Pick `def` or `async def` per endpoint based on whether you call async I\u002FO;** do not mix sync and async blocking calls in one handler.\n2. **Manage long-lived resources (DB pools, HTTP clients) in `lifespan` and inject via `Depends`;** use `with`\u002F`async with` for per-request resources.\n",{"name":5,"license":15,"metadata":24,"description":7},{"author":25,"version":26},"Microsoft","1.0.0","main","c2b1fdccc779e99ac814e55fb69ca8d71215dd0f","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection","https:\u002F\u002Fgithub.com\u002FSamuelChien","http:\u002F\u002Fsamuelchien.com\u002F","2026-05-26 08:27:14",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add SamuelChien\u002Fmega-skills-collection --skill fastapi-router-py",{"tool":39,"command":40},"bunx","bunx skills add SamuelChien\u002Fmega-skills-collection --skill fastapi-router-py",{"tool":42,"command":43},"pnpm","pnpm dlx skills add SamuelChien\u002Fmega-skills-collection --skill fastapi-router-py","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Ffastapi-router-py\u002FSKILL.md",true,[47],{"path":48,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":51,"sourceHtmlUrl":52},"assets\u002Ftemplate.py","SCRIPT","脚本",4518,"https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Ffastapi-router-py\u002Fassets\u002Ftemplate.py",[54,61,68,75,82,90],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M76R4WZQZAXGGXMQCA0FZ716","zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzustand-store-ts\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M76R4T9KENDH7FENGZQHBW4G","zustand-store-creator","Zustand Store Creator - Auto-activating skill for Frontend Development.\nTriggers on: zustand store creator, zustand store creator\nPart of the Frontend Development skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzustand-store-creator\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M76R3YWN84B7SANJ52X799ZE","zero-trust-config-helper","Zero Trust Config Helper - Auto-activating skill for Security Advanced.\nTriggers on: zero trust config helper, zero trust config helper\nPart of the Security Advanced skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzero-trust-config-helper\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M76R3HNSV2AEYSKHM915GJ58","zapier-integration-helper","Zapier Integration Helper - Auto-activating skill for Business Automation.\nTriggers on: zapier integration helper, zapier integration helper\nPart of the Business Automation skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzapier-integration-helper\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":86,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M76R3DJSKAT4FA7DV4BF3GCE","zai-cli","Execute z.AI CLI providing vision, search, reader, and GitHub exploration via CLI and MCP.\nUse when user needs image\u002Fvideo analysis, OCR, UI-to-code conversion, error diagnosis,\nreal-time web search, web page to markdown extraction, or GitHub code exploration.\nTrigger with phrases like \"analyze this image\", \"search the web for\", \"read this page\",\n\"explore this repo\", or \"use zai\". Requires Z_AI_API_KEY.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzai-cli\u002FSKILL.md",[],[],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":19},"01M76R2KAM699XE9AJVAWE4H2E","yt-research","Research competitor YouTube channels, niches, and trending topics for your content strategy.\nUse this skill whenever the user says \"research channels\", \"analyze competitors\", \"find trending topics\",\n\"niche analysis\", \"competitive research\", \"what are other creators doing\", \"scrape YouTube channels\",\nor wants to understand the competitive landscape for a specific tool or topic area. Use when working with yt research. Trigger with 'yt', 'research'.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fyt-research\u002FSKILL.md",[],[]]