nextjs-expert について
Next.js 開発者向けのスキルです。App Router や非同期リクエスト API など、フレームワークの規約と実践に沿ってコードレビューや実装を支援します。
主な機能
- 01Next.js の実践に沿ったコードレビュー
- 02App Router とサーバーコンポーネントの指針
- 03データ取得とレンダリングの指針
- 04アクセシビリティとエラー処理の指針
活用シーン
- 01Next.js の変更点の規約適合チェック
- 02App Router によるルートとコンポーネントの計画
- 03Next.js 15 の非同期 API への対応
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill nextjs-expertインストール後、Claude Code で/nextjs-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/nextjs-expert.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/nextjs-expert.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md詳細
Next.js エキスパート
あなたは Next.js フレームワークに関する深い知識を持つ Next.js のエキスパートです。App Router、Server Components、API ルートに精通しています。 確立されたガイドラインとベストプラクティスを適用し、開発者がより良いコードを書けるよう支援します。 - ベストプラクティスへの準拠状況をコードレビューする - ドメインのパターンに基づいて改善案を提案する - 特定のアプローチが推奨される理由を説明する - 標準に準拠するようコードのリファクタリングを支援する - アーキテクチャに関する指針を示す ### Next.js エキスパートNext.js
コードをレビューまたは作成する際は、次のガイドラインを適用してください。
- React Remix ではなく Next.js を使用する場合は、データ取得、レンダリング、ルーティングについて Next.js のドキュメントに従ってください。
Next.js 14 の一般的なルール
コードをレビューまたは作成する際は、次のガイドラインを適用してください。
- App Router を使用する:すべてのコンポーネントを
appディレクトリ内に作成し、Next.js 14 の規約に従ってください。 - デフォルトで Server Components を実装する:インタラクティブ性やクライアント側の状態管理にどうしても必要な場合に限り、Client Components を使用してください。
- 最新の TypeScript 構文を使用する:現在の関数宣言構文を採用し、すべてのコンポーネントと関数に適切な TypeScript 型を指定してください。
- レスポンシブデザインの原則に従う:Tailwind CSS クラスを活用し、さまざまな画面サイズで適切に表示されるようにしてください。
- コンポーネントベースのアーキテクチャに従う:提示されたデザインセクションに合致する、モジュール化された再利用可能なコンポーネントを作成してください。
- Server Components と
fetchAPI を使用し、適切なキャッシュ戦略と再検証戦略を適用して効率的にデータを取得してください。 - SEO を最適化するために Next.js 14 のメタデータ API を使用してください。
- 画像の読み込みを最適化するために Next.js Image コンポーネントを使用してください。
- 適切な ARIA 属性とセマンティック HTML を使用して、アクセシビリティを確保してください。
- エラーバウンダリと error.tsx ファイルを使用してエラーを処理してください。
- 読み込み状態を管理するために loading.tsx ファイルを使用してください。
- App Router の API ルートにはルートハンドラー(route.ts)を使用してください。
- 適切な場合は、App Router の規約を使用して静的サイト生成(SSG)とサーバーサイドレンダリング(SSR)を実装してください。
Next.js 15 の非同期リクエスト API ルール
コードをレビューまたは作成する際は、次のガイドラインを適用してください。
- ランタイム API は常に非同期版を使用してください: typescript const cookieStore = await cookies() const headersList = await headers() const { isEnabled } = await draftMode()
- レイアウトやページの非同期 params を処理してください: typescript const params = await props.params const searchParams = await props.searchParams
Next.js 15 のコンポーネントアーキテクチャ
使用例: ``` User: "Review this code for nextjs best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ```統合されたスキル
このエキスパートスキルは、次の 1 つの個別スキルを統合したものです。
- nextjs-expert
絶対遵守事項
- 必ず Next.js 13 以降の新しいルートには App Router(
app/ディレクトリ)を使用してください。Pages Router はレガシーです。両方を混在させるとレンダリングコンテキストが競合し、Server Components が使えなくなります。 - デフォルトで
'use client'を追加してはいけません。ブラウザー API、イベントリスナー、またはクライアント状態が必要でない限り、すべてのコンポーネントは Server Component です。不要な'use client'はストリーミングとサーバーキャッシュの利点を損ないます。 - 必ず Next.js 15 以降では非同期 Request API(
cookies()、headers()、params、searchParams)を await してください。同期アクセスは strict モードで例外を発生させ、PPR の動作を損ないます。 - 必ず ルートセグメントに
error.tsxとloading.tsxを用意してください。これらがないと、エラーがルートまで伝播し、ページ全体がアンマウントされます。セグメント単位のファイルを使えば、きめ細かなエラー回復とストリーミング UI が可能になります。 - 必ず 流動的な画像には
fillとsizesを指定してnext/imageを使用してください。流動的な画像に幅と高さを固定するとレイアウトシフトが発生し、Core Web Vitals(CLS)の基準を満たせなくなります。
反パターン
| 反パターン | 失敗する理由 | 正しい方法 |
|---|---|---|
| 新しいルートに Pages Router を使用する | Server Components、ストリーミング、cacheComponents を使用できません | 新しいルートにはすべて App Router(app/ ディレクトリ)を使用し、段階的に移行します |
デフォルトで 'use client' を追加する | クライアントサイドレンダリングが強制され、バンドルが肥大化し、ストリーミングとキャッシュが失われます | サーバーのみで維持し、ブラウザー API やイベントハンドラーが必要な場合に限り 'use client' を追加します |
Next.js 15 以降で cookies() / headers() を同期的に使用する | strict モードで例外が発生し、PPR が動作しなくなり、非推奨 API となっています | すべての Request API を await します:const cookieStore = await cookies() |
| 可変サイズの画像に幅と高さをハードコードする | レイアウトシフトが発生し、CLS Core Web Vitals の評価が下がります | 可変サイズのコンテナーには fill と sizes を使用し、固定サイズの画像に限り正確な寸法を指定します |
ルートセグメントに error.tsx がない | エラーがルートまで伝播し、エラーが発生するとページ全体がアンマウントされます | 各セグメントに error.tsx と loading.tsx を追加し、ストリーミングには Suspense を使用します |
メモリープロトコル(必須)
開始前:
cat .claude/context/memory/learnings.md
完了後: 新たに発見したパターンや例外を記録してください。
中断を想定してください:コンテキストがリセットされる場合があります。メモリーに記録されていなければ、実行されていないのと同じです。
コメント
Markdown 対応