[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D9XQ2BV36EBWDRYRN42DAS":3,"skill-same:01M6D9XQ2BV36EBWDRYRN42DAS":94},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6D9XQ2BV36EBWDRYRN42DAS","web-bugfix",null,"Fix frontend bugs with minimum-touch changes, keep other surfaces stable, and sync schema, types, hooks, constants, tests, and related docs when impacted.","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-bugfix\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33],"web","web bugfix","frontend","docs","sync","fix","schema","hooks","surfaces","tests","2026-11-10 10:12:30",false,"---\nname: web-bugfix\ndescription: Fix frontend bugs with minimum-touch changes, keep other surfaces stable, and sync schema, types, hooks, constants, tests, and related docs when impacted.\n---\n\n# Skill: Web Bugfix\n\n## Context (Required)\n- Folder scope + impact map: `references\u002Fcontext.md`\n- Execution checklist: `templates\u002Fchecklist.md`\n\nUse this skill when the user asks to fix a frontend bug. Core principle: **minimum touch**. Find the root cause, change as little as possible, do not refactor unrelated areas, then sync artifacts that are actually impacted. Leave no drift behind.\n\n## Workflow\n\n### 1. Reproduce or Define the Bug Clearly\n\nBefore changing code:\n- understand the symptoms\n- find reproduction steps or a clear failing behavior\n- define the bug's boundary: page, hook, component, shared schema\u002Ftype, or API integration\n\nIf possible, add or update a test that represents the bug.\n\n### 2. Localize the Root Cause\n\nFind the smallest viable root cause. Prioritize these locations:\n- `*-page-content.tsx` and its `_components\u002F`\n- transaction hooks\n- shared schema\u002Ftype consumed by the frontend\n- constants (`api-routers`, `query-keys`)\n- reusable components that are actually the source of the bug\n\nDo not refactor large areas just because the bug surfaced in messy code.\n\n### 3. Apply Minimum-Touch Fix\n\nMinimum-touch rules:\n- touch as few files as possible\n- fix the wrong behavior without redesigning the surrounding area\n- do not replace architectural patterns unrelated to the bug\n- do not clean up unrelated old debt\n\n### 4. Sync Impacted Artifacts\n\nIf the bug touches a contract or data shape, update what truly needs updating:\n- `packages\u002Fschemas`\n- `packages\u002Ftypes`\n- frontend transaction hooks\n- related constants or utils\n- relevant tests\n- contract docs if the frontend's expectation of the API genuinely changed\n\nIf the bug actually originates from a wrong backend contract, do not hide the problem in the frontend. Patch the frontend surface as needed, then route or continue with the appropriate backend skill.\n\n### 5. Verify Narrowly but Thoroughly\n\nMinimum verification:\n- test that reproduces or guards the bug\n- typecheck\u002Flint on touched surfaces\n- confirm no new contract drift\n\nIf the bug lives in an active starter surface, prioritize keeping the homepage, shared contract, and transaction hooks consistent.\n\n## Prohibitions\n\n- **NEVER** do large refactors when the user only asked for a bug fix.\n- **NEVER** change other files just because they look messy.\n- **NEVER** leave schema\u002Ftype\u002Fhooks\u002Fdocs drift when the fix changes data shape.\n- **NEVER** cover up a backend bug with a frontend workaround that adds state lies or contract mismatch.\n- **NEVER** finish without targeted verification.\n\n## Pre-Completion Checklist\n\n- [ ] Bug reproduced or wrong behavior defined clearly\n- [ ] Root cause localized to the smallest reasonable surface\n- [ ] Change remains minimum touch\n- [ ] Shared schema\u002Ftypes\u002Fconstants\u002Fhooks updated if actually impacted\n- [ ] Relevant tests added or updated\n- [ ] No new drift in the frontend contract\n- [ ] All files end with a newline (EOF)\n","# Skill: Web Bugfix\n\n## Context (Required)\n- Folder scope + impact map: `references\u002Fcontext.md`\n- Execution checklist: `templates\u002Fchecklist.md`\n\nUse this skill when the user asks to fix a frontend bug. Core principle: **minimum touch**. Find the root cause, change as little as possible, do not refactor unrelated areas, then sync artifacts that are actually impacted. Leave no drift behind.\n\n## Workflow\n\n### 1. Reproduce or Define the Bug Clearly\n\nBefore changing code:\n- understand the symptoms\n- find reproduction steps or a clear failing behavior\n- define the bug's boundary: page, hook, component, shared schema\u002Ftype, or API integration\n\nIf possible, add or update a test that represents the bug.\n\n### 2. Localize the Root Cause\n\nFind the smallest viable root cause. Prioritize these locations:\n- `*-page-content.tsx` and its `_components\u002F`\n- transaction hooks\n- shared schema\u002Ftype consumed by the frontend\n- constants (`api-routers`, `query-keys`)\n- reusable components that are actually the source of the bug\n\nDo not refactor large areas just because the bug surfaced in messy code.\n\n### 3. Apply Minimum-Touch Fix\n\nMinimum-touch rules:\n- touch as few files as possible\n- fix the wrong behavior without redesigning the surrounding area\n- do not replace architectural patterns unrelated to the bug\n- do not clean up unrelated old debt\n\n### 4. Sync Impacted Artifacts\n\nIf the bug touches a contract or data shape, update what truly needs updating:\n- `packages\u002Fschemas`\n- `packages\u002Ftypes`\n- frontend transaction hooks\n- related constants or utils\n- relevant tests\n- contract docs if the frontend's expectation of the API genuinely changed\n\nIf the bug actually originates from a wrong backend contract, do not hide the problem in the frontend. Patch the frontend surface as needed, then route or continue with the appropriate backend skill.\n\n### 5. Verify Narrowly but Thoroughly\n\nMinimum verification:\n- test that reproduces or guards the bug\n- typecheck\u002Flint on touched surfaces\n- confirm no new contract drift\n\nIf the bug lives in an active starter surface, prioritize keeping the homepage, shared contract, and transaction hooks consistent.\n\n## Prohibitions\n\n- **NEVER** do large refactors when the user only asked for a bug fix.\n- **NEVER** change other files just because they look messy.\n- **NEVER** leave schema\u002Ftype\u002Fhooks\u002Fdocs drift when the fix changes data shape.\n- **NEVER** cover up a backend bug with a frontend workaround that adds state lies or contract mismatch.\n- **NEVER** finish without targeted verification.\n\n## Pre-Completion Checklist\n\n- [ ] Bug reproduced or wrong behavior defined clearly\n- [ ] Root cause localized to the smallest reasonable surface\n- [ ] Change remains minimum touch\n- [ ] Shared schema\u002Ftypes\u002Fconstants\u002Fhooks updated if actually impacted\n- [ ] Relevant tests added or updated\n- [ ] No new drift in the frontend contract\n- [ ] All files end with a newline (EOF)\n",{"name":5,"description":7},"main","916c70a2d28dc0d7f254eb0f8c139b53689399f1",".agents\u002Fskills\u002Fweb-bugfix",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":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add irosadie\u002Fvibecoding-starter --skill web-bugfix",{"tool":54,"command":55},"bunx","bunx skills add irosadie\u002Fvibecoding-starter --skill web-bugfix",{"tool":57,"command":58},"pnpm","pnpm dlx skills add irosadie\u002Fvibecoding-starter --skill web-bugfix","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-bugfix\u002FSKILL.md",true,[62,68,72,76,80,86,90],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"agents\u002Fopenai.yaml","REFERENCE","参考文档",295,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-bugfix\u002Fagents\u002Fopenai.yaml",{"path":69,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fcitation-formats.md",3284,"https:\u002F\u002Fgithub.com\u002Fdahaliztupe-sketch\u002FKalmeron-Two\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-summarizer\u002Freferences\u002Fcitation-formats.md",{"path":73,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fcontext.md",1181,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-bugfix\u002Freferences\u002Fcontext.md",{"path":77,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fsummary-templates.md",4129,"https:\u002F\u002Fgithub.com\u002Fdahaliztupe-sketch\u002FKalmeron-Two\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-summarizer\u002Freferences\u002Fsummary-templates.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fextract_citations.py","SCRIPT","脚本",9704,"https:\u002F\u002Fgithub.com\u002Fdahaliztupe-sketch\u002FKalmeron-Two\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-summarizer\u002Fscripts\u002Fextract_citations.py",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"scripts\u002Fformat_summary.py",10834,"https:\u002F\u002Fgithub.com\u002Fdahaliztupe-sketch\u002FKalmeron-Two\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-summarizer\u002Fscripts\u002Fformat_summary.py",{"path":91,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":92,"sourceHtmlUrl":93},"templates\u002Fchecklist.md",593,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-bugfix\u002Ftemplates\u002Fchecklist.md",[95,121,150,173,179,202],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":107,"publishedAt":34},"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",[101,102],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[24,108,109,110,111,112,113,114,115,116,117,118,119,120,26],"web slicing","screenshot","layout","visual","pixel","task","reusable","implementation","use","convert","ui","figma","components",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":133,"publishedAt":34},"01M6D9ZQYHQ1PAYT33M4YXSCRN","web-seo-geo-friendly","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.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb-seo-geo-friendly\u002FSKILL.md",[127,130],{"categoryNo":128,"categoryName":129,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":131,"categoryName":132,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000035","市场营销",[134,135,136,137,24,138,139,140,141,142,116,143,144,145,146,147,148,149],"seo geo","geo","web seo geo friendly","seo","js","Next.js","engine","public","user","Optimization","router","app","pages","next","optimize","geo optimization",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":163,"publishedAt":34},"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",[156,159,160],{"categoryNo":157,"categoryName":158,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":161,"categoryName":162,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000030","开发工程师",[164,165,166,24,167,168,169,170,171,26,172],"web code review","code","code review","review","firm","test","contracts","architecture","shared",{"skillNo":174,"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":175,"categories":176,"keywords":178,"publishedAt":34},"01M6D9ZJRFAKFT0VTK32W47PZ1","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fvibecoding-starter\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb-bugfix\u002FSKILL.md",[177],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,25,28,33,32,31,30,29,27,26],{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":190,"publishedAt":34},"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",[185,186,189],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":187,"categoryName":188,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":161,"categoryName":162,"taxonomyType":105,"taxonomyTypeDesc":106},[24,191,192,193,116,194,195,196,26,31,197,198,199,200,201],"web api integrated","api","integrate","zod","postman","react","contract","swagger","query","api contract","endpoints",{"skillNo":203,"name":204,"nameZh":6,"description":205,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":206,"categories":207,"keywords":211,"publishedAt":34},"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",[208],{"categoryNo":209,"categoryName":210,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[212,213,214,215,216,217,218,219,220,221,222,223],"skill creator","new skill","full","structure","registration","references","Wrapper","manifest","templates","yaml","openai","create"]