[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D9XXRTJSY44CFHR7P1BBP9":3,"skill-same:01M6D9XXRTJSY44CFHR7P1BBP9":89},{"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":28,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6D9XXRTJSY44CFHR7P1BBP9","web-seo-geo-friendly",null,"Optimize public Next.js App Router pages for SEO and GEO (Generative Engine Optimization). Use when the user explicitly requests SEO\u002FGEO optimization on public pages.","irosadie\u002Fvibecoding-starter","irosadie","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F25891018?v=4","01M6D9VT1T5RGGX753ARTN5J8N","Imron Rosadi","01M6D9VT6HENHT7C9ASN5QE5YT",1,"MIT","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-seo-geo-friendly\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"web seo geo friendly","seo","geo","web","seo geo","router","app","pages","next","optimize","geo optimization","use","user","public","engine","js","Next.js","Optimization","2026-11-10 10:12:30",false,"---\nname: web-seo-geo-friendly\ndescription: Optimize public Next.js App Router pages for SEO and GEO (Generative Engine Optimization). Use when the user explicitly requests SEO\u002FGEO optimization on public pages.\n---\n\n# Skill: Web SEO + GEO\n\n## Context (Required)\n- Folder scope + code examples: `references\u002Fcontext.md`\n- Execution checklist: `templates\u002Fchecklist.md`\n\nOptimize public pages for discoverability by search engines and AI answer engines.\n\n## Scope\n\nApplies only to **public** pages in `apps\u002Fweb\u002Fapp\u002F` that are not protected by auth.\n\n## Workflow\n\n1. Add `generateMetadata` or `metadata` in `page.tsx`\n2. Add Open Graph and Twitter card meta\n3. Add JSON-LD structured data matching the content type\n4. Add the page to `sitemap.ts`\n5. Ensure `robots.ts` does not block public pages\n\n## Prohibitions\n\n- **FORBIDDEN** to apply this skill to private or auth-protected pages.\n- **FORBIDDEN** to add generic metadata unrelated to the page content.\n- **FORBIDDEN** to add structured data that is invalid or irrelevant to the content.\n\n## Pre-Completion Checklist\n\n- [ ] `generateMetadata` present: title, description, canonical\n- [ ] Open Graph meta: title, description, url, image\n- [ ] Twitter card meta: card type, title, description\n- [ ] JSON-LD structured data matches the page type\n- [ ] Page listed in `sitemap.ts`\n- [ ] `robots.ts` does not block the page\n- [ ] H1 present and descriptive (one per page)\n- [ ] Meta description 150-160 characters\n- [ ] Every file ends with a newline (EOF)\n","# Skill: Web SEO + GEO\n\n## Context (Required)\n- Folder scope + code examples: `references\u002Fcontext.md`\n- Execution checklist: `templates\u002Fchecklist.md`\n\nOptimize public pages for discoverability by search engines and AI answer engines.\n\n## Scope\n\nApplies only to **public** pages in `apps\u002Fweb\u002Fapp\u002F` that are not protected by auth.\n\n## Workflow\n\n1. Add `generateMetadata` or `metadata` in `page.tsx`\n2. Add Open Graph and Twitter card meta\n3. Add JSON-LD structured data matching the content type\n4. Add the page to `sitemap.ts`\n5. Ensure `robots.ts` does not block public pages\n\n## Prohibitions\n\n- **FORBIDDEN** to apply this skill to private or auth-protected pages.\n- **FORBIDDEN** to add generic metadata unrelated to the page content.\n- **FORBIDDEN** to add structured data that is invalid or irrelevant to the content.\n\n## Pre-Completion Checklist\n\n- [ ] `generateMetadata` present: title, description, canonical\n- [ ] Open Graph meta: title, description, url, image\n- [ ] Twitter card meta: card type, title, description\n- [ ] JSON-LD structured data matches the page type\n- [ ] Page listed in `sitemap.ts`\n- [ ] `robots.ts` does not block the page\n- [ ] H1 present and descriptive (one per page)\n- [ ] Meta description 150-160 characters\n- [ ] Every file ends with a newline (EOF)\n",{"name":5,"description":7},"main","916c70a2d28dc0d7f254eb0f8c139b53689399f1",".agents\u002Fskills\u002Fweb-seo-geo-friendly",0,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter","https:\u002F\u002Fgithub.com\u002Firosadie","http:\u002F\u002Fimronrosadi.com","The Hatless Engineer 👨‍💻","2026-08-18 16:55:34",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add irosadie\u002Fvibecoding-starter --skill web-seo-geo-friendly",{"tool":67,"command":68},"bunx","bunx skills add irosadie\u002Fvibecoding-starter --skill web-seo-geo-friendly",{"tool":70,"command":71},"pnpm","pnpm dlx skills add irosadie\u002Fvibecoding-starter --skill web-seo-geo-friendly","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-seo-geo-friendly\u002FSKILL.md",true,[75,81,85],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"agents\u002Fopenai.yaml","REFERENCE","参考文档",295,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-seo-geo-friendly\u002Fagents\u002Fopenai.yaml",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fcontext.md",1466,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-seo-geo-friendly\u002Freferences\u002Fcontext.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"templates\u002Fchecklist.md",605,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-seo-geo-friendly\u002Ftemplates\u002Fchecklist.md",[90,116,123,146,162,185],{"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":102,"publishedAt":47},"01M6D9ZV5TNXMKVY9GVT9RGJTH","web-slicing","Convert screenshot\u002FFigma designs into pixel-perfect frontend UI with reusable components. Use when the task focuses on visual and layout implementation.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb-slicing\u002FSKILL.md",[96,99],{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":100,"categoryName":101,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师",[32,103,104,105,106,107,108,109,110,40,111,112,113,114,115],"web slicing","screenshot","layout","visual","pixel","task","reusable","implementation","convert","ui","figma","components","frontend",{"skillNo":117,"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":118,"categories":119,"keywords":122,"publishedAt":47},"01M6D9ZQYHQ1PAYT33M4YXSCRN","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb-seo-geo-friendly\u002FSKILL.md",[120,121],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[33,31,29,30,32,44,45,43,42,41,40,46,34,35,36,37,38,39],{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":136,"publishedAt":47},"01M6D9ZNF4TQXY90M865XHN2PJ","web-code-review","Review frontend code with a firm senior-lead standard, focusing on bugs, regressions, architecture risks, and test gaps in apps\u002Fweb and the shared contracts the frontend depends on.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb-code-review\u002FSKILL.md",[129,132,133],{"categoryNo":130,"categoryName":131,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":134,"categoryName":135,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师",[137,138,139,32,140,141,142,143,144,115,145],"web code review","code","code review","review","firm","test","contracts","architecture","shared",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":153,"publishedAt":47},"01M6D9ZJRFAKFT0VTK32W47PZ1","web-bugfix","Fix frontend bugs with minimum-touch changes, keep other surfaces stable, and sync schema, types, hooks, constants, tests, and related docs when impacted.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb-bugfix\u002FSKILL.md",[152],{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},[32,154,155,156,157,158,159,160,161,115],"web bugfix","sync","tests","surfaces","hooks","schema","fix","docs",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":173,"publishedAt":47},"01M6D9ZFYC0ZCPR7Y2X2KQHSWH","web-api-integrated","Integrate API endpoints into the frontend with Zod schemas, response types, constants, and react-query hooks. Use when implementing endpoints from an API contract, Postman, or Swagger.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb-api-integrated\u002FSKILL.md",[168,169,172],{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":170,"categoryName":171,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":134,"categoryName":135,"taxonomyType":26,"taxonomyTypeDesc":27},[32,174,175,176,40,177,178,179,115,158,180,181,182,183,184],"web api integrated","api","integrate","zod","postman","react","contract","swagger","query","api contract","endpoints",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":194,"publishedAt":47},"01M6D9ZCVH83YJSG1818BT7BYC","skill-creator","Create a new skill from scratch with full structure — SKILL.md, references, templates, openai.yaml, Claude wrapper, and registration in manifest + AGENTS.md + CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fskill-creator\u002FSKILL.md",[191],{"categoryNo":192,"categoryName":193,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[195,196,197,198,199,200,201,202,203,204,205,206],"skill creator","new skill","full","structure","registration","references","Wrapper","manifest","templates","yaml","openai","create"]