[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CRB9BVE2QZE2TYCGMB151F":3,"skill-same:01M6CRB9BVE2QZE2TYCGMB151F":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":62,"install":63,"resources":75},"01M6CRB9BVE2QZE2TYCGMB151F","fe-clean-code",null,"Audit frontend code for clean code principles: single responsibility, consistent patterns, error handling, TypeScript strictness, architecture, and simplicity\u002Fover-engineering.","ohmyhotelco\u002Fhare-cc-plugins","ohmyhotelco","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F258133233?v=4","01M6CR4HP2N9F9ZWNX1KRHQ2W1","01M6CR4HSJC5J80RVQMD5K9QRN",2,"MIT","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Ffrontend-react-plugin\u002Fskills\u002Ffe-clean-code\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"clean","fe clean code","code","clean code","principles","true","for","error","error handling","architecture","file","engineering","patterns","grep","frontend","typescript","read","directory","audit","simplicity","2026-11-10 10:12:30",false,"---\nname: fe-clean-code\ndescription: \"Audit frontend code for clean code principles: single responsibility, consistent patterns, error handling, TypeScript strictness, architecture, and simplicity\u002Fover-engineering.\"\nargument-hint: \"[file-or-directory-path]\"\nuser-invocable: true\nallowed-tools: Read, Glob, Grep, Agent\n---\n\n# Clean Code Audit\n\nAudit frontend React\u002FTypeScript code for clean code principles across 8 quality dimensions.\n\n## Instructions\n\n### Step 0: Validate Configuration\n\n1. Read `.claude\u002Ffrontend-react-plugin.json`\n2. If missing, tell the user to run `\u002Ffrontend-react-plugin:fe-init` first and stop\n3. Extract `baseDir`, `appDir`, and `routerMode` (default `\"declarative\"` when absent) from config — `quality-reviewer` needs `routerMode` for the dimension 1.6 router-convention checks\n\n### Step 1: Determine Scope\n\n- If argument provided: audit the specified file or directory\n- If no argument: audit all files in `{baseDir}\u002F`\n\n**A missing or empty target is `unverifiable`, never a pass.** Confirm the resolved target exists\nbefore launching the agent; if it does not, say so and stop. If the agent reports `unverifiable`,\nsurface that verbatim — do not render it as a passing audit.\n\n### Step 2: Launch Quality Reviewer (Standalone Mode)\n\n```\nAgent(subagent_type: \"frontend-react-plugin:quality-reviewer\", prompt: \"\n  Review code quality in standalone mode.\n\n  Parameters:\n  - mode: standalone\n  - targetPath: {targetPath}\n  - projectRoot: {cwd}\n  - baseDir: {baseDir}\n  - routerMode: {routerMode}\n\n  Follow the process defined in agents\u002Fquality-reviewer.md.\n  Return the audit report as text.\n\")\n```\n\n### Step 3: Display Report\n\nDisplay the agent's text output directly. No further processing needed.\n","# Clean Code Audit\n\nAudit frontend React\u002FTypeScript code for clean code principles across 8 quality dimensions.\n\n## Instructions\n\n### Step 0: Validate Configuration\n\n1. Read `.claude\u002Ffrontend-react-plugin.json`\n2. If missing, tell the user to run `\u002Ffrontend-react-plugin:fe-init` first and stop\n3. Extract `baseDir`, `appDir`, and `routerMode` (default `\"declarative\"` when absent) from config — `quality-reviewer` needs `routerMode` for the dimension 1.6 router-convention checks\n\n### Step 1: Determine Scope\n\n- If argument provided: audit the specified file or directory\n- If no argument: audit all files in `{baseDir}\u002F`\n\n**A missing or empty target is `unverifiable`, never a pass.** Confirm the resolved target exists\nbefore launching the agent; if it does not, say so and stop. If the agent reports `unverifiable`,\nsurface that verbatim — do not render it as a passing audit.\n\n### Step 2: Launch Quality Reviewer (Standalone Mode)\n\n```\nAgent(subagent_type: \"frontend-react-plugin:quality-reviewer\", prompt: \"\n  Review code quality in standalone mode.\n\n  Parameters:\n  - mode: standalone\n  - targetPath: {targetPath}\n  - projectRoot: {cwd}\n  - baseDir: {baseDir}\n  - routerMode: {routerMode}\n\n  Follow the process defined in agents\u002Fquality-reviewer.md.\n  Return the audit report as text.\n\")\n```\n\n### Step 3: Display Report\n\nDisplay the agent's text output directly. No further processing needed.\n",{"name":5,"description":7,"allowed-tools":53,"argument-hint":54,"user-invocable":55},"Read, Glob, Grep, Agent","[file-or-directory-path]",true,"main","eaef2a5b6092b72972ff2f25ef79803753bc9bbf","frontend-react-plugin\u002Fskills\u002Ffe-clean-code",0,"https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins","https:\u002F\u002Fgithub.com\u002Fohmyhotelco","2026-11-11 08:26:27",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":55},[65,68,71],{"tool":66,"command":67},"npx","npx skills add ohmyhotelco\u002Fhare-cc-plugins --skill fe-clean-code",{"tool":69,"command":70},"bunx","bunx skills add ohmyhotelco\u002Fhare-cc-plugins --skill fe-clean-code",{"tool":72,"command":73},"pnpm","pnpm dlx skills add ohmyhotelco\u002Fhare-cc-plugins --skill fe-clean-code","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Ffrontend-react-plugin\u002Fskills\u002Ffe-clean-code\u002FSKILL.md",[],[77,99,119,142,162,183],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":48},"01M6M5QVXQNQMJBP1JZP9T440T","hp-shared","Shared conventions for every homepage-plugin agent and skill — stack, code conventions, state-file writes, check commands and how to report them. Preloaded into agents through their `skills:` frontmatter; not meant to be invoked by hand.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fhomepage-plugin\u002Fskills\u002Fhp-shared\u002FSKILL.md",[],[84,85,86,87,88,89,34,90,91,92,93,94,95,96,38,30,97,98],"shared","hp shared","state","stack","plugin","how","report","code conventions","commands","how to","conventions","false","frontmatter","hand","check",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":109,"publishedAt":48},"01M6M5PZTN1M0G4AHJV08VF1HV","fe-shared","Shared conventions for every frontend-react-plugin agent and skill — code conventions, state files and locks, accepted deviations, design principles, build working directory, router-mode command matrix, TypeScript check. Preloaded into agents through their `skills:` frontmatter; not meant to be invoked by hand.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Ffrontend-react-plugin\u002Fskills\u002Ffe-shared\u002FSKILL.md",[105,106],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":107,"categoryName":108,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",[84,110,34,111,91,42,112,113,114,95,30,97,115,98,116,86,88,32,117,118],"fe shared","mode","design","design principles","files","react","router","command","build",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":131,"publishedAt":48},"01M6M5GAW7ZZ3580DVCMH51SFQ","be-spring-shared","Shared conventions for every backend-springboot-plugin agent and skill — tech stack, CQRS architecture, naming, coding standards, TDD, commit and build rules, state files. Preloaded into agents through their `skills:` frontmatter; not meant to be invoked by hand.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fbackend-springboot-plugin\u002Fskills\u002Fbe-spring-shared\u002FSKILL.md",[125,128],{"categoryNo":126,"categoryName":127,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":129,"categoryName":130,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[84,132,133,114,95,134,37,97,87,135,96,136,137,138,34,139,140,86,88,141],"spring","be spring shared","commit","coding standards","coding","standards","tech","Rules","cqrs","naming",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":48},"01M6FNV58QMW8K71SA9FGTXMF4","pp-translate","Use after directly editing the working language spec to sync changes to other supported languages.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fplanning-plugin\u002Fskills\u002Fpp-translate\u002FSKILL.md",[],[149,150,151,152,153,154,44,155,156,157,158,159,38,160,33,161],"pp","pp translate","translate","feature","name","editing","spec","write","edit","sync","use","language","changes",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":169,"publishedAt":48},"01M6FNV0PGRKR2MW0AEPS6XP0Q","pp-sync-stitch","Use when wireframes were manually edited on the Stitch website and need to be re-fetched to the local project.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fplanning-plugin\u002Fskills\u002Fpp-sync-stitch\u002FSKILL.md",[168],{"categoryNo":129,"categoryName":130,"taxonomyType":20,"taxonomyTypeDesc":21},[170,149,171,158,172,173,152,174,175,176,177,159,178,179,180,181,182,153,44,33],"pp sync stitch","stitch","projects","get","project","re","local","MCP","Bash","id","wireframes","website","screen",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":190,"publishedAt":48},"01M6FNTWW2KHS9XRAR72X33G0B","pp-sync-notion","Use when a specification needs to be published or re-synced to Notion after finalization or manual edits.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fplanning-plugin\u002Fskills\u002Fpp-sync-notion\u002FSKILL.md",[189],{"categoryNo":129,"categoryName":130,"taxonomyType":20,"taxonomyTypeDesc":21},[149,191,158,192,152,175,193,194,177,159,195,153,44,156,157,41,33],"notion","pp sync notion","search","manual","specification"]