nextjslisted
Install: claude install-skill ndisisnd/cook
# Next.js
## Invocation Protocol
When invoked directly as `/nextjs`, read this file first and apply the critical rules below before editing. Then read `standards/nextjs/_INDEX.md` and load only the additional `refs/*.md` entries whose file patterns or keywords match the task.
If both App Router and Pages Router signals appear, apply the Router Decision below before loading App Router-specific refs. For a Pages Router-only project, load `refs/pages-router.md` and treat App Router refs as informational unless the migration explicitly touches `app/`.
## Router Decision
App Router is the default for new work. If the project uses `pages/`, treat App Router rules as informational and load `refs/pages-router.md`; do not apply `app/` conventions, Server Components, or Server Actions to a Pages Router-only project.
## P0 - Server & Client Components
- App Router uses React Server Components by default. Keep pages and layouts as Server Components unless they need hooks, browser APIs, or event handlers.
- Push `'use client'` to interactive leaves such as buttons, forms, charts, and wrappers. Do not mark the tree root client-side.
- Compose Server Components through Client Component `children`; never import a Server Component into a Client Component.
- Server-to-Client props must be serializable: strings, numbers, booleans, plain objects, and arrays. Convert `Date` to strings and avoid functions, classes, `Map`, `Set`, and `Symbol` values except Server Actions marked `'use server'