Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Writes Next.js App Router code — Server Components, Server Actions, RSC boundaries, route handlers, caching, and streaming — matching framework conventions and project architecture.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
14.x and 15.x (App Router), React 18+ / 19+.app/),
fall back to plain React skills; ask before introducing App Router.Use this skill for Next.js-specific code generation and editing on the App Router:
"use client")"use server")app/api/**/route.ts)fetch + cache directivesrevalidatePath / revalidateTag invalidation<Suspense> boundariesmiddleware.ts)When the task is understanding how a Next.js app boots, where the
server/client boundary lives, what is cached vs streamed, or why a
hydration mismatch fires — defer to project-analysis-nextjs first,
then return here for the edit.
app/ directory exists; next.config.{js,ts,mjs} present.package.json major for next. 14.x vs 15.x differs in
default caching (15.x is uncached by default for fetch) and in cookies() /
headers() being async.app/ vs grouped (app/(marketing)/,
app/(app)/); identify shared layouts and parallel routes.node runtime."use client" only when a leaf
component needs state, effects, browser APIs, or event handlers."use client" boundary is viral upward at the import graph, but you
can keep a Server Component rendered as a child of a Client Component
by passing it as a prop / children — that pattern keeps server logic out
of the client bundle.import "server-only" at the top
of a server module to make leaks fail at build time.import "client-only" for code that must never run on the
server (e.g. browser-only SDKs).Map / Set — use plain JSON."use server" at the top of the file or per-function.useEffect for
pure data fetching — that is what Server Components are for.revalidatePath() / revalidateTag() or redirect().{ ok: true, data } / { ok: false, error } discriminated
union — never throw across the action boundary for expected errors.useActionState (15.x) / useFormState (14.x) on the client for
progressive enhancement; the form must work without JS.app/api/**/route.ts exports GET, POST, etc.edge only when
the dependency set supports it.await req.json() or await req.formData().Response / NextResponse. Use NextResponse.json for JSON +
consistent status codes.middleware.ts; do not assume any framework default.export const dynamic = 'force-static' / revalidate = N explicitly.fetch is cached by default (force-cache); opt out with
{ cache: 'no-store' } or segment-level export const dynamic = 'force-dynamic'.fetch is not cached by default; opt in with
{ cache: 'force-cache' } or { next: { revalidate: N } }.fetch(url, { next: { tags: ['posts'] } }) then revalidateTag('posts').revalidatePath('/blog/[slug]', 'page') for targeted page invalidation.revalidate* from a Client Component — wrap it in a Server Action.unstable_cache / cache (React) wrap pure server functions for memoization
within a request; respect the difference between request-scoped and
cross-request caching.await together —
avoid sequential await chains that block streaming.<Suspense> boundaries make slow data non-blocking; wrap each independent
data dependency in its own Suspense, not the whole page.loading.tsx is a default Suspense fallback for the segment; do not use it
as a global spinner.useEffect for initial data load in Client Components — fetch on the
server and pass props.layout.tsx is a persistent wrapper across navigations; do not put
per-page logic there.template.tsx re-renders on every navigation; use only when a layout
cannot.loading.tsx, error.tsx, not-found.tsx are per-segment; nest them
to localize fallbacks.error.tsx must be a Client Component ("use client"); accept error and
reset props.middleware.ts at the project root runs on the edge runtime before a
request hits a route — use for auth redirects, locale negotiation, A/B.matcher config narrows which paths invoke it — never let middleware run
on every asset.export const metadata; dynamic generateMetadata().
generateStaticParams for static dynamic-segment generation.next/image, next/font, next/dynamic for images, fonts, code-split
Client Components — never bare <img>, CSS @import Google Fonts, or
unguarded heavy imports."use client" near the top of a tree pulls the subtree into the
client bundle — keep the boundary at the leaf.DATABASE_URL etc.; client-exposed must be prefixed
NEXT_PUBLIC_* and is NOT secret. Validate env at boot (zod) and import
the validated object — never process.env ad hoc.revalidateTag / revalidatePath)."use client" to a file that does not need it — it pulls the
subtree into the client bundle.import "server-only".useEffect to fetch data — fetch on the server.cookies(), headers(), params, searchParams are
async in 15.x. Code that ran on 14.x will silently misbehave (Promise
rendered as an object) until awaited.Date.now(), Math.random(), or
locale-dependent strings without suppressHydrationWarning or a Client
boundary causes a hydration error."use client" is not opt-in for hooks: it is required for any file
using useState, useEffect, useRef, or browser globals.FormData. Mixing FormData and typed args breaks progressive
enhancement.next build && next start).revalidatePath requires the route group syntax for parallel/dynamic
segments — bare paths silently miss.fs, crypto.createHash) fail at the edge. Pin runtime per route."use client")"use server") · Route Handler (app/api) · middleware.tsrevalidatePath / revalidateTag / unstable_cachenext/image / next/font / next/dynamiclayout.tsx / loading.tsx / error.tsx / not-found.tsxまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
日本語の概要は準備中です。原文の説明を表示しています。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
日本語の概要は準備中です。原文の説明を表示しています。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
日本語の概要は準備中です。原文の説明を表示しています。