[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DT1JN5V7FDGV2ES2MB9CV5":3,"skill-same:01M6DT1JN5V7FDGV2ES2MB9CV5":171},{"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":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6DT1JN5V7FDGV2ES2MB9CV5","next-best-practices",null,"Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image\u002Ffont optimization, bundling","gokulkrishh\u002Ftil.bar","gokulkrishh","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2944237?v=4","01M6DT1GENQD60RP003YAE57AA","Gokulakrishnan Kalaikovan","01M6DT1GM2G03AX7RKF58YA653",4,"MIT","https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"best practices","next best practices","next","image","error handling","metadata","file","Optimization","data","Next.js","js","async","patterns","route","conventions","false","2026-11-10 10:12:30",false,"---\nname: next-best-practices\ndescription: Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image\u002Ffont optimization, bundling\nuser-invocable: false\n---\n\n# Next.js Best Practices\n\nApply these rules when writing or reviewing Next.js code.\n\n## File Conventions\n\nSee [file-conventions.md](.\u002Ffile-conventions.md) for:\n\n- Project structure and special files\n- Route segments (dynamic, catch-all, groups)\n- Parallel and intercepting routes\n- Middleware rename in v16 (middleware → proxy)\n\n## RSC Boundaries\n\nDetect invalid React Server Component patterns.\n\nSee [rsc-boundaries.md](.\u002Frsc-boundaries.md) for:\n\n- Async client component detection (invalid)\n- Non-serializable props detection\n- Server Action exceptions\n\n## Async Patterns\n\nNext.js 15+ async API changes.\n\nSee [async-patterns.md](.\u002Fasync-patterns.md) for:\n\n- Async `params` and `searchParams`\n- Async `cookies()` and `headers()`\n- Migration codemod\n\n## Runtime Selection\n\nSee [runtime-selection.md](.\u002Fruntime-selection.md) for:\n\n- Default to Node.js runtime\n- When Edge runtime is appropriate\n\n## Directives\n\nSee [directives.md](.\u002Fdirectives.md) for:\n\n- `'use client'`, `'use server'` (React)\n- `'use cache'` (Next.js)\n\n## Functions\n\nSee [functions.md](.\u002Ffunctions.md) for:\n\n- Navigation hooks: `useRouter`, `usePathname`, `useSearchParams`, `useParams`\n- Server functions: `cookies`, `headers`, `draftMode`, `after`\n- Generate functions: `generateStaticParams`, `generateMetadata`\n\n## Error Handling\n\nSee [error-handling.md](.\u002Ferror-handling.md) for:\n\n- `error.tsx`, `global-error.tsx`, `not-found.tsx`\n- `redirect`, `permanentRedirect`, `notFound`\n- `forbidden`, `unauthorized` (auth errors)\n- `unstable_rethrow` for catch blocks\n\n## Data Patterns\n\nSee [data-patterns.md](.\u002Fdata-patterns.md) for:\n\n- Server Components vs Server Actions vs Route Handlers\n- Avoiding data waterfalls (`Promise.all`, Suspense, preload)\n- Client component data fetching\n\n## Route Handlers\n\nSee [route-handlers.md](.\u002Froute-handlers.md) for:\n\n- `route.ts` basics\n- GET handler conflicts with `page.tsx`\n- Environment behavior (no React DOM)\n- When to use vs Server Actions\n\n## Metadata & OG Images\n\nSee [metadata.md](.\u002Fmetadata.md) for:\n\n- Static and dynamic metadata\n- `generateMetadata` function\n- OG image generation with `next\u002Fog`\n- File-based metadata conventions\n\n## Image Optimization\n\nSee [image.md](.\u002Fimage.md) for:\n\n- Always use `next\u002Fimage` over `\u003Cimg>`\n- Remote images configuration\n- Responsive `sizes` attribute\n- Blur placeholders\n- Priority loading for LCP\n\n## Font Optimization\n\nSee [font.md](.\u002Ffont.md) for:\n\n- `next\u002Ffont` setup\n- Google Fonts, local fonts\n- Tailwind CSS integration\n- Preloading subsets\n\n## Bundling\n\nSee [bundling.md](.\u002Fbundling.md) for:\n\n- Server-incompatible packages\n- CSS imports (not link tags)\n- Polyfills (already included)\n- ESM\u002FCommonJS issues\n- Bundle analysis\n\n## Scripts\n\nSee [scripts.md](.\u002Fscripts.md) for:\n\n- `next\u002Fscript` vs native script tags\n- Inline scripts need `id`\n- Loading strategies\n- Google Analytics with `@next\u002Fthird-parties`\n\n## Hydration Errors\n\nSee [hydration-error.md](.\u002Fhydration-error.md) for:\n\n- Common causes (browser APIs, dates, invalid HTML)\n- Debugging with error overlay\n- Fixes for each cause\n\n## Suspense Boundaries\n\nSee [suspense-boundaries.md](.\u002Fsuspense-boundaries.md) for:\n\n- CSR bailout with `useSearchParams` and `usePathname`\n- Which hooks require Suspense boundaries\n\n## Parallel & Intercepting Routes\n\nSee [parallel-routes.md](.\u002Fparallel-routes.md) for:\n\n- Modal patterns with `@slot` and `(.)` interceptors\n- `default.tsx` for fallbacks\n- Closing modals correctly with `router.back()`\n\n## Self-Hosting\n\nSee [self-hosting.md](.\u002Fself-hosting.md) for:\n\n- `output: 'standalone'` for Docker\n- Cache handlers for multi-instance ISR\n- What works vs needs extra setup\n\n## Debug Tricks\n\nSee [debug-tricks.md](.\u002Fdebug-tricks.md) for:\n\n- MCP endpoint for AI-assisted debugging\n- Rebuild specific routes with `--debug-build-paths`\n","# Next.js Best Practices\n\nApply these rules when writing or reviewing Next.js code.\n\n## File Conventions\n\nSee [file-conventions.md](.\u002Ffile-conventions.md) for:\n\n- Project structure and special files\n- Route segments (dynamic, catch-all, groups)\n- Parallel and intercepting routes\n- Middleware rename in v16 (middleware → proxy)\n\n## RSC Boundaries\n\nDetect invalid React Server Component patterns.\n\nSee [rsc-boundaries.md](.\u002Frsc-boundaries.md) for:\n\n- Async client component detection (invalid)\n- Non-serializable props detection\n- Server Action exceptions\n\n## Async Patterns\n\nNext.js 15+ async API changes.\n\nSee [async-patterns.md](.\u002Fasync-patterns.md) for:\n\n- Async `params` and `searchParams`\n- Async `cookies()` and `headers()`\n- Migration codemod\n\n## Runtime Selection\n\nSee [runtime-selection.md](.\u002Fruntime-selection.md) for:\n\n- Default to Node.js runtime\n- When Edge runtime is appropriate\n\n## Directives\n\nSee [directives.md](.\u002Fdirectives.md) for:\n\n- `'use client'`, `'use server'` (React)\n- `'use cache'` (Next.js)\n\n## Functions\n\nSee [functions.md](.\u002Ffunctions.md) for:\n\n- Navigation hooks: `useRouter`, `usePathname`, `useSearchParams`, `useParams`\n- Server functions: `cookies`, `headers`, `draftMode`, `after`\n- Generate functions: `generateStaticParams`, `generateMetadata`\n\n## Error Handling\n\nSee [error-handling.md](.\u002Ferror-handling.md) for:\n\n- `error.tsx`, `global-error.tsx`, `not-found.tsx`\n- `redirect`, `permanentRedirect`, `notFound`\n- `forbidden`, `unauthorized` (auth errors)\n- `unstable_rethrow` for catch blocks\n\n## Data Patterns\n\nSee [data-patterns.md](.\u002Fdata-patterns.md) for:\n\n- Server Components vs Server Actions vs Route Handlers\n- Avoiding data waterfalls (`Promise.all`, Suspense, preload)\n- Client component data fetching\n\n## Route Handlers\n\nSee [route-handlers.md](.\u002Froute-handlers.md) for:\n\n- `route.ts` basics\n- GET handler conflicts with `page.tsx`\n- Environment behavior (no React DOM)\n- When to use vs Server Actions\n\n## Metadata & OG Images\n\nSee [metadata.md](.\u002Fmetadata.md) for:\n\n- Static and dynamic metadata\n- `generateMetadata` function\n- OG image generation with `next\u002Fog`\n- File-based metadata conventions\n\n## Image Optimization\n\nSee [image.md](.\u002Fimage.md) for:\n\n- Always use `next\u002Fimage` over `\u003Cimg>`\n- Remote images configuration\n- Responsive `sizes` attribute\n- Blur placeholders\n- Priority loading for LCP\n\n## Font Optimization\n\nSee [font.md](.\u002Ffont.md) for:\n\n- `next\u002Ffont` setup\n- Google Fonts, local fonts\n- Tailwind CSS integration\n- Preloading subsets\n\n## Bundling\n\nSee [bundling.md](.\u002Fbundling.md) for:\n\n- Server-incompatible packages\n- CSS imports (not link tags)\n- Polyfills (already included)\n- ESM\u002FCommonJS issues\n- Bundle analysis\n\n## Scripts\n\nSee [scripts.md](.\u002Fscripts.md) for:\n\n- `next\u002Fscript` vs native script tags\n- Inline scripts need `id`\n- Loading strategies\n- Google Analytics with `@next\u002Fthird-parties`\n\n## Hydration Errors\n\nSee [hydration-error.md](.\u002Fhydration-error.md) for:\n\n- Common causes (browser APIs, dates, invalid HTML)\n- Debugging with error overlay\n- Fixes for each cause\n\n## Suspense Boundaries\n\nSee [suspense-boundaries.md](.\u002Fsuspense-boundaries.md) for:\n\n- CSR bailout with `useSearchParams` and `usePathname`\n- Which hooks require Suspense boundaries\n\n## Parallel & Intercepting Routes\n\nSee [parallel-routes.md](.\u002Fparallel-routes.md) for:\n\n- Modal patterns with `@slot` and `(.)` interceptors\n- `default.tsx` for fallbacks\n- Closing modals correctly with `router.back()`\n\n## Self-Hosting\n\nSee [self-hosting.md](.\u002Fself-hosting.md) for:\n\n- `output: 'standalone'` for Docker\n- Cache handlers for multi-instance ISR\n- What works vs needs extra setup\n\n## Debug Tricks\n\nSee [debug-tricks.md](.\u002Fdebug-tricks.md) for:\n\n- MCP endpoint for AI-assisted debugging\n- Rebuild specific routes with `--debug-build-paths`\n",{"name":5,"description":7,"user-invocable":41},"main","84e37fd35a680ff02f3160323c65f5709a9de384",".agents\u002Fskills\u002Fnext-best-practices",0,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar","https:\u002F\u002Ftil.bar","https:\u002F\u002Fgithub.com\u002Fgokulkrishh","gokul.site","Web Developer and EX GDE in Web Technologies","2026-10-19 10:33:04",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add gokulkrishh\u002Ftil.bar --skill next-best-practices",{"tool":61,"command":62},"bunx","bunx skills add gokulkrishh\u002Ftil.bar --skill next-best-practices",{"tool":64,"command":65},"pnpm","pnpm dlx skills add gokulkrishh\u002Ftil.bar --skill next-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002FSKILL.md",true,[69,74,78,82,86,90,94,98,101,105,109,112,116,120,124,127,130,133,137,141,144,148,152,156,160,164,168],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":48,"sourceHtmlUrl":73},"algorithms.md","REFERENCE","参考文档","https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fagents\u002Fskills\u002Fmulti-rpc-health-scoring\u002Falgorithms.md",{"path":75,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":76,"sourceHtmlUrl":77},"async-patterns.md",1684,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fasync-patterns.md",{"path":79,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":80,"sourceHtmlUrl":81},"bundling.md",4776,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fbundling.md",{"path":83,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":84,"sourceHtmlUrl":85},"data-patterns.md",6905,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fdata-patterns.md",{"path":87,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":88,"sourceHtmlUrl":89},"debug-tricks.md",2974,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fdebug-tricks.md",{"path":91,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":92,"sourceHtmlUrl":93},"directives.md",1486,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fdirectives.md",{"path":95,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":96,"sourceHtmlUrl":97},"error-handling.md",4770,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Ferror-handling.md",{"path":99,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":48,"sourceHtmlUrl":100},"failure_modes.md","https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fagents\u002Fskills\u002Fmulti-rpc-health-scoring\u002Ffailure_modes.md",{"path":102,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":103,"sourceHtmlUrl":104},"file-conventions.md",3769,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Ffile-conventions.md",{"path":106,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":107,"sourceHtmlUrl":108},"font.md",5241,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Ffont.md",{"path":110,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":48,"sourceHtmlUrl":111},"formulas.md","https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fagents\u002Fskills\u002Fmulti-rpc-health-scoring\u002Fformulas.md",{"path":113,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":114,"sourceHtmlUrl":115},"functions.md",5961,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Ffunctions.md",{"path":117,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":118,"sourceHtmlUrl":119},"hydration-error.md",1801,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fhydration-error.md",{"path":121,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":122,"sourceHtmlUrl":123},"image.md",3901,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fimage.md",{"path":125,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":48,"sourceHtmlUrl":126},"implementation_notes.md","https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fagents\u002Fskills\u002Fmulti-rpc-health-scoring\u002Fimplementation_notes.md",{"path":128,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":48,"sourceHtmlUrl":129},"integration_arbitragex.md","https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fagents\u002Fskills\u002Fmulti-rpc-health-scoring\u002Fintegration_arbitragex.md",{"path":131,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":48,"sourceHtmlUrl":132},"manifest.json","https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fagents\u002Fskills\u002Fmulti-rpc-health-scoring\u002Fmanifest.json",{"path":134,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":135,"sourceHtmlUrl":136},"metadata.md",7507,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fmetadata.md",{"path":138,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":139,"sourceHtmlUrl":140},"parallel-routes.md",7472,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fparallel-routes.md",{"path":142,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":48,"sourceHtmlUrl":143},"references.json","https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fagents\u002Fskills\u002Fmulti-rpc-health-scoring\u002Freferences.json",{"path":145,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":146,"sourceHtmlUrl":147},"route-handlers.md",3459,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Froute-handlers.md",{"path":149,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":150,"sourceHtmlUrl":151},"rsc-boundaries.md",4713,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Frsc-boundaries.md",{"path":153,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":154,"sourceHtmlUrl":155},"runtime-selection.md",986,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fruntime-selection.md",{"path":157,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":158,"sourceHtmlUrl":159},"scripts.md",3663,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fscripts.md",{"path":161,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":162,"sourceHtmlUrl":163},"self-hosting.md",8883,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fself-hosting.md",{"path":165,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":166,"sourceHtmlUrl":167},"suspense-boundaries.md",1482,"https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fnext-best-practices\u002Fsuspense-boundaries.md",{"path":169,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":48,"sourceHtmlUrl":170},"validation_tests.md","https:\u002F\u002Fgithub.com\u002Fhefarica\u002Farbitragex-v2\u002Fblob\u002Fmain\u002F.claude\u002Fagents\u002Fskills\u002Fmulti-rpc-health-scoring\u002Fvalidation_tests.md",[172,178,211,233],{"skillNo":173,"name":174,"nameZh":6,"description":6,"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":177,"publishedAt":40},"01M6DT2ATE38W4FD073EJQC36P","commit","https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcommit\u002FSKILL.md",[],[174],{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":192,"publishedAt":40},"01M6DT27EH6AGEW5QZVFXKMXXB","web-design-guidelines","Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".","https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweb-design-guidelines\u002FSKILL.md",[184,187],{"categoryNo":185,"categoryName":186,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":188,"categoryName":189,"taxonomyType":190,"taxonomyTypeDesc":191},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[193,194,195,196,197,198,199,200,24,201,30,202,203,204,205,206,207,208,209,210],"web design","web design guidelines","guidelines","web","design","review","accessibility","code","ux","audit","ui","compliance","site","check","use","vercel","pattern","web interface guidelines",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":220,"publishedAt":40},"01M6DT1YXZQVHFJBEZ491EBFBV","vercel-react-best-practices","React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React\u002FNext.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.","https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvercel-react-best-practices\u002FSKILL.md",[217],{"categoryNo":218,"categoryName":219,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[221,208,24,222,223,224,225,226,227,228,229,26,195,230,200,31,32,33,231,232],"react best practices","vercel react best practices","react","pages","triggers","react components","writing","performance","components","tasks","refactoring","performance optimization",{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":242,"publishedAt":40},"01M6DT1R294HCPRZVYZ576SX2Y","supabase-postgres-best-practices","Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.","https:\u002F\u002Fgithub.com\u002Fgokulkrishh\u002Ftil.bar\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsupabase-postgres-best-practices\u002FSKILL.md",[239],{"categoryNo":240,"categoryName":241,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[243,244,245,24,246,228,247,248,200,249,207,250,251,252,253,254,255,256,31,227],"postgres","supabase","supabase postgres best practices","postgres best practices","examples","database","Rules","schema","queries","correct","query","across","critical","analysis"]