[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J2EGREVMQ2DH77PJ8P3K0V":3,"skill-same:01M6J2EGREVMQ2DH77PJ8P3K0V":77},{"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":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6J2EGREVMQ2DH77PJ8P3K0V","api-generator",null,"Generate REST API endpoints with validation and error handling","sampleXbro\u002Fagentsmesh","sampleXbro","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F55853222?v=4","01M6J1A11VAS9QEE92CHHMBCKC","Serhii Zhabskyi","01M6J1A16FCGNMMABYE0P6SNTF",29,"MIT","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fcrush-project\u002F.crush\u002Fskills\u002Fapi-generator\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],"api","api generator","generator","generate","error handling","validation","REST","endpoints","rest api","error","with","2026-11-10 10:12:30",false,"---\nname: api-generator\ndescription: Generate REST API endpoints with validation and error handling\n---\n\n## Purpose\n\nGenerate well-structured REST API endpoints following the project's conventions.\nIncludes request validation, typed response shapes, and consistent error handling.\n\n## Workflow\n\n1. Analyze the endpoint requirements from the user's description\n2. Review `references\u002Fchecklist.md` for quality gates\n3. Generate the route handler with input validation\n4. Add typed request\u002Fresponse interfaces\n5. Include error handling middleware integration\n6. Write unit tests alongside the implementation\n\n## Best Practices\n\n- Always validate request bodies against a schema (e.g., zod)\n- Return consistent error response shapes: `{ error: string; code: string }`\n- Use HTTP status codes correctly (400 for validation, 404 for not found, 500 for unexpected)\n- Log errors at the appropriate level (warn for expected, error for unexpected)\n","## Purpose\n\nGenerate well-structured REST API endpoints following the project's conventions.\nIncludes request validation, typed response shapes, and consistent error handling.\n\n## Workflow\n\n1. Analyze the endpoint requirements from the user's description\n2. Review `references\u002Fchecklist.md` for quality gates\n3. Generate the route handler with input validation\n4. Add typed request\u002Fresponse interfaces\n5. Include error handling middleware integration\n6. Write unit tests alongside the implementation\n\n## Best Practices\n\n- Always validate request bodies against a schema (e.g., zod)\n- Return consistent error response shapes: `{ error: string; code: string }`\n- Use HTTP status codes correctly (400 for validation, 404 for not found, 500 for unexpected)\n- Log errors at the appropriate level (warn for expected, error for unexpected)\n",{"name":5,"description":7},"master","2a22abcae4e5677b6e385b5a0e144c48baac4a94","tests\u002Fe2e\u002Ffixtures\u002Fcrush-project\u002F.crush\u002Fskills\u002Fapi-generator",7,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh","https:\u002F\u002Fsamplexbro.github.io\u002Fagentsmesh\u002F","https:\u002F\u002Fgithub.com\u002FsampleXbro","Senior Software Engineer · React · TypeScript · Next.js · Smart TV specialist (Tizen, webOS, Android TV)","2026-11-06 03:06:21",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add sampleXbro\u002Fagentsmesh --skill api-generator",{"tool":63,"command":64},"bunx","bunx skills add sampleXbro\u002Fagentsmesh --skill api-generator",{"tool":66,"command":67},"pnpm","pnpm dlx skills add sampleXbro\u002Fagentsmesh --skill api-generator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fcrush-project\u002F.crush\u002Fskills\u002Fapi-generator\u002FSKILL.md",true,[71],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Fchecklist.md","REFERENCE","参考文档",569,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fcrush-project\u002F.crush\u002Fskills\u002Fapi-generator\u002Freferences\u002Fchecklist.md",[78,92,106,116,122,141],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":87,"publishedAt":43},"01M6J2GJ4NDEPJND2GAXN0VPRB","research","Research docs and summarize decisions","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fwindsurf-project\u002F.windsurf\u002Fskills\u002Fresearch\u002FSKILL.md",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[80,88,89,90,91],"docs","summarize","decisions","research docs",{"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":99,"publishedAt":43},"01M6J2GF8WQVFP75AMJWV7YM50","debugging","Systematic debugging workflow for production failures and test regressions.","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fwarp-project\u002F.warp\u002Fskills\u002Fdebugging\u002FSKILL.md",[98],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[94,100,101,102,103,104,105],"systematic debugging","workflow","test","Production","systematic","for",{"skillNo":107,"name":5,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":114,"publishedAt":43},"01M6J2GAQRCM0KV565J63STPWB","Generate REST API endpoints with validation and tests","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Ftrae-project\u002F.trae\u002Fskills\u002Fapi-generator\u002FSKILL.md",[111,112,113],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},[32,33,34,38,39,40,115,42,37,35],"tests",{"skillNo":117,"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":118,"categories":119,"keywords":121,"publishedAt":43},"01M6J2G7VF3A2EGK5YBR4BM9KS","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Frovodev-project\u002F.rovodev\u002Fskills\u002Fdebugging\u002FSKILL.md",[120],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[94,105,101,102,100,103,104],{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":129,"publishedAt":43},"01M6J2G4VHBHSPXGVQRZCH8CDW","typescript-pro","Apply advanced TypeScript patterns including conditional types, template literal types, and mapped types","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Froo-code-project\u002F.roo\u002Fskills\u002Ftypescript-pro\u002FSKILL.md",[128],{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},[130,131,132,133,134,135,136,137,138,139,140],"typescript","typescript pro","pro","patterns","code","architect","template","typescript patterns","Literal","types","advanced",{"skillNo":142,"name":94,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":147,"publishedAt":43},"01M6J2G2133FJ5SAHK9WX4YVNV","Systematic debugging workflow for Replit projects","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Freplit-agent-project\u002F.agents\u002Fskills\u002Fdebugging\u002FSKILL.md",[146],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[94,100,148,104,105,101],"projects"]