[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FDKGS1Y1S98KBTFBGS5BHD":3,"skill-same:01M6FDKGS1Y1S98KBTFBGS5BHD":45},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":25,"repositoryHtmlUrl":26,"repositoryHomepageUrl":27,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M6FDKGS1Y1S98KBTFBGS5BHD","polish",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmxyhi\u002Fok-skills\u002Fpolish\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"**First**: Use the frontend-design skill for design principles and anti-patterns.\n\nPerform a meticulous final pass to catch all the small details that separate good work from great work. The difference between shipped and polished.\n\n## Pre-Polish Assessment\n\nUnderstand the current state and goals:\n\n1. **Review completeness**:\n   - Is it functionally complete?\n   - Are there known issues to preserve (mark with TODOs)?\n   - What's the quality bar? (MVP vs flagship feature?)\n   - When does it ship? (How much time for polish?)\n\n2. **Identify polish areas**:\n   - Visual inconsistencies\n   - Spacing and alignment issues\n   - Interaction state gaps\n   - Copy inconsistencies\n   - Edge cases and error states\n   - Loading and transition smoothness\n\n**CRITICAL**: Polish is the last step, not the first. Don't polish work that's not functionally complete.\n\n## Polish Systematically\n\nWork through these dimensions methodically:\n\n### Visual Alignment & Spacing\n\n- **Pixel-perfect alignment**: Everything lines up to grid\n- **Consistent spacing**: All gaps use spacing scale (no random 13px gaps)\n- **Optical alignment**: Adjust for visual weight (icons may need offset for optical centering)\n- **Responsive consistency**: Spacing and alignment work at all breakpoints\n- **Grid adherence**: Elements snap to baseline grid\n\n**Check**:\n- Enable grid overlay and verify alignment\n- Check spacing with browser inspector\n- Test at multiple viewport sizes\n- Look for elements that \"feel\" off\n\n### Typography Refinement\n\n- **Hierarchy consistency**: Same elements use same sizes\u002Fweights throughout\n- **Line length**: 45-75 characters for body text\n- **Line height**: Appropriate for font size and context\n- **Widows & orphans**: No single words on last line\n- **Hyphenation**: Appropriate for language and column width\n- **Kerning**: Adjust letter spacing where needed (especially headlines)\n- **Font loading**: No FOUT\u002FFOIT flashes\n\n### Color & Contrast\n\n- **Contrast ratios**: All text meets WCAG standards\n- **Consistent token usage**: No hard-coded colors, all use design tokens\n- **Theme consistency**: Works in all theme variants\n- **Color meaning**: Same colors mean same things throughout\n- **Accessible focus**: Focus indicators visible with sufficient contrast\n- **Tinted neutrals**: No pure gray or pure black—add subtle color tint (0.01 chroma)\n- **Gray on color**: Never put gray text on colored backgrounds—use a shade of that color or transparency\n\n### Interaction States\n\nEvery interactive element needs all states:\n\n- **Default**: Resting state\n- **Hover**: Subtle feedback (color, scale, shadow)\n- **Focus**: Keyboard focus indicator (never remove without replacement)\n- **Active**: Click\u002Ftap feedback\n- **Disabled**: Clearly non-interactive\n- **Loading**: Async action feedback\n- **Error**: Validation or error state\n- **Success**: Successful completion\n\n**Missing states create confusion and broken experiences**.\n\n### Micro-interactions & Transitions\n\n- **Smooth transitions**: All state changes animated appropriately (150-300ms)\n- **Consistent easing**: Use ease-out-quart\u002Fquint\u002Fexpo for natural deceleration. Never bounce or elastic—they feel dated.\n- **No jank**: 60fps animations, only animate transform and opacity\n- **Appropriate motion**: Motion serves purpose, not decoration\n- **Reduced motion**: Respects `prefers-reduced-motion`\n\n### Content & Copy\n\n- **Consistent terminology**: Same things called same names throughout\n- **Consistent capitalization**: Title Case vs Sentence case applied consistently\n- **Grammar & spelling**: No typos\n- **Appropriate length**: Not too wordy, not too terse\n- **Punctuation consistency**: Periods on sentences, not on labels (unless all labels have them)\n\n### Icons & Images\n\n- **Consistent style**: All icons from same family or matching style\n- **Appropriate sizing**: Icons sized consistently for context\n- **Proper alignment**: Icons align with adjacent text optically\n- **Alt text**: All images have descriptive alt text\n- **Loading states**: Images don't cause layout shift, proper aspect ratios\n- **Retina support**: 2x assets for high-DPI screens\n\n### Forms & Inputs\n\n- **Label consistency**: All inputs properly labeled\n- **Required indicators**: Clear and consistent\n- **Error messages**: Helpful and consistent\n- **Tab order**: Logical keyboard navigation\n- **Auto-focus**: Appropriate (don't overuse)\n- **Validation timing**: Consistent (on blur vs on submit)\n\n### Edge Cases & Error States\n\n- **Loading states**: All async actions have loading feedback\n- **Empty states**: Helpful empty states, not just blank space\n- **Error states**: Clear error messages with recovery paths\n- **Success states**: Confirmation of successful actions\n- **Long content**: Handles very long names, descriptions, etc.\n- **No content**: Handles missing data gracefully\n- **Offline**: Appropriate offline handling (if applicable)\n\n### Responsiveness\n\n- **All breakpoints**: Test mobile, tablet, desktop\n- **Touch targets**: 44x44px minimum on touch devices\n- **Readable text**: No text smaller than 14px on mobile\n- **No horizontal scroll**: Content fits viewport\n- **Appropriate reflow**: Content adapts logically\n\n### Performance\n\n- **Fast initial load**: Optimize critical path\n- **No layout shift**: Elements don't jump after load (CLS)\n- **Smooth interactions**: No lag or jank\n- **Optimized images**: Appropriate formats and sizes\n- **Lazy loading**: Off-screen content loads lazily\n\n### Code Quality\n\n- **Remove console logs**: No debug logging in production\n- **Remove commented code**: Clean up dead code\n- **Remove unused imports**: Clean up unused dependencies\n- **Consistent naming**: Variables and functions follow conventions\n- **Type safety**: No TypeScript `any` or ignored errors\n- **Accessibility**: Proper ARIA labels and semantic HTML\n\n## Polish Checklist\n\nGo through systematically:\n\n- [ ] Visual alignment perfect at all breakpoints\n- [ ] Spacing uses design tokens consistently\n- [ ] Typography hierarchy consistent\n- [ ] All interactive states implemented\n- [ ] All transitions smooth (60fps)\n- [ ] Copy is consistent and polished\n- [ ] Icons are consistent and properly sized\n- [ ] All forms properly labeled and validated\n- [ ] Error states are helpful\n- [ ] Loading states are clear\n- [ ] Empty states are welcoming\n- [ ] Touch targets are 44x44px minimum\n- [ ] Contrast ratios meet WCAG AA\n- [ ] Keyboard navigation works\n- [ ] Focus indicators visible\n- [ ] No console errors or warnings\n- [ ] No layout shift on load\n- [ ] Works in all supported browsers\n- [ ] Respects reduced motion preference\n- [ ] Code is clean (no TODOs, console.logs, commented code)\n\n**IMPORTANT**: Polish is about details. Zoom in. Squint at it. Use it yourself. The little things add up.\n\n**NEVER**:\n- Polish before it's functionally complete\n- Spend hours on polish if it ships in 30 minutes (triage)\n- Introduce bugs while polishing (test thoroughly)\n- Ignore systematic issues (if spacing is off everywhere, fix the system)\n- Perfect one thing while leaving others rough (consistent quality level)\n\n## Final Verification\n\nBefore marking as done:\n\n- **Use it yourself**: Actually interact with the feature\n- **Test on real devices**: Not just browser DevTools\n- **Ask someone else to review**: Fresh eyes catch things\n- **Compare to design**: Match intended design\n- **Check all states**: Don't just test happy path\n\nRemember: You have impeccable attention to detail and exquisite taste. Polish until it feels effortless, looks intentional, and works flawlessly. Sweat the details - they matter.\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fmxyhi\u002Fok-skills\u002Fpolish",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill polish",{"tool":37,"command":38},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill polish",{"tool":40,"command":41},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill polish","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmxyhi\u002Fok-skills\u002Fpolish\u002FSKILL.md",true,[],[46,60,70,79,85,92],{"skillNo":47,"name":48,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":49,"categories":50,"keywords":56,"publishedAt":18},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[51],{"categoryNo":52,"categoryName":53,"taxonomyType":54,"taxonomyTypeDesc":55},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[57,58,59],"model","model hierarchy","model hierarchy skill",{"skillNo":61,"name":62,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":66,"publishedAt":18},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[65],{"categoryNo":52,"categoryName":53,"taxonomyType":54,"taxonomyTypeDesc":55},[67,68,69],"MCP","zoom","zoom mcp",{"skillNo":71,"name":72,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":18},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[76,77,78,68],"sdk","zoom apps sdk","apps",{"skillNo":80,"name":81,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":18},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[81],{"skillNo":86,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":91,"publishedAt":18},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[90],{"categoryNo":52,"categoryName":53,"taxonomyType":54,"taxonomyTypeDesc":55},[87],{"skillNo":93,"name":94,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":18},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[94]]