performance-expert について
遅いエンドポイント、クエリ、ジョブ、ビルド成果物、メトリクスを診断する、開発者向けのバックエンド・配信レイヤー性能スキルです。ボトルネックを優先順位付けし、対策を提案します。Reactの描画問題は専門スキルに振り分けます。
主な機能
- 01バックエンドとデータベースのボトルネック診断
- 02キャッシュとバックグラウンド処理の確認
- 03バンドルとアセット配信の分析
- 04測定方法と対策の提案
- 05React描画問題の振り分け
活用シーン
- 01遅いAPIエンドポイントやDBクエリの調査
- 02N+1クエリやインデックス改善箇所の特定
- 03キャッシュやバックグラウンドジョブの検討
- 04バンドルサイズとアセット配信の分析
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ shipshitdev/ skills --skill performance-expertインストール後、Claude Code で/performance-expertを入力して読み込まれたか確認します。
同梱ファイルplugin.jsonreferences/full-guide.md
詳細
パフォーマンスエキスパートスキル
バックエンド、データベース、インフラストラクチャのパフォーマンスを扱います。このスキルは、スタックのサーバー側と配信レイヤーを担当します。リクエストのレイテンシ、データアクセス、キャッシュ、バックグラウンド処理、そしてネットワーク経由で配信されるものが対象です。
React コンポーネント内のレンダー時処理(再レンダー、メモ化、仮想化リスト、Profiler のトレース)は、診断方法もツールも異なります。ここで重複して扱うのではなく、react-component-performance に割り当ててください。
契約
入力:
- エンドポイント、クエリ、ジョブ、ビルド出力、または性能が低下したメトリクスなど、対象が特定されたパフォーマンス上の症状。
出力:
- 各ボトルネックを裏付ける測定結果と、ボトルネックごとの具体的な修正案を添えた、優先順位付きのボトルネック一覧。
作成/変更:
- 単独では何も行いません。診断と解決策の提示を行い、編集は呼び出し元のワークフローで行います。
外部への副作用:
- ありません。プロファイリングや負荷テストのコマンドは提示しますが、無人で実行することはありません。
委譲先:
- React のレンダリングが集中する箇所、再レンダーの頻発、メモ化、Profiler に基づくコンポーネント作業は
react-component-performanceに委譲します。 - 対象が単一の領域ではなくモノレポ全体の場合は、
workspace-performance-auditに委譲します。
使用する場面
- API の応答時間を改善する
- データベースのクエリ、インデックス、集計を最適化する
- N+1 クエリのパターンを診断する
- キャッシュ戦略と無効化を実装する
- 重い処理をバックグラウンドジョブやキューに移す
- サーバープロセスのプロファイリングや、遅いリクエストのトレースを行う
- 配信するバンドルサイズやアセット配信を分析する
- CDN、キャッシュヘッダー、エッジキャッシュを設定する
プロジェクトコンテキストの確認
- パフォーマンスアーキテクチャのコンテキストについて
.agents/memory/を確認します(例:*performance*または*architecture*ファイル) - パフォーマンスツール(APM、負荷テスト用ハーネス、プロファイラー)を特定します
- 既存の最適化とキャッシュ戦略を確認します
[project]-performance-expertスキルを確認します
パフォーマンスの基本原則
バックエンド
API 応答時間: 目標は 200ms 未満(p95)。キャッシュ、バックグラウンドジョブ、コネクションプーリングを活用します。
クエリの最適化: インデックス、プロジェクション(select)、ページネーション、データベース側の集計を活用します。
バックグラウンド処理: 重い処理にはキューを使用し、重要度の低いタスクは非同期で処理します。リクエストハンドラー内でブロッキング処理を行わないでください。
データベース
インデックス: 頻繁にクエリされるフィールドにインデックスを設定し、複合インデックスを活用して使用状況を監視します。
クエリ: where で絞り込み、必要な列だけを select し、インデックスを使ってソートします。シーケンシャルスキャンは避けてください。
インフラストラクチャ
CDN: エッジキャッシュと適切なキャッシュヘッダーを使用し、静的アセットをオリジンから配信しないようにします。
サーバーレス: コールドスタートの最適化、メモリ割り当て、プロビジョンドコンカレンシーを設定します。
配信レイヤー
バンドル: ルートごとのコード分割、重いモジュールの動的インポート、ツリーシェイキングを行い、未使用の依存関係を削除します。
アセット: WebP 画像、サブセット化したフォント、CSS/JS の最小化、Gzip/Brotli 圧縮を使用します。
サーバーレンダリング: 静的コンテンツには静的生成を使用し、インクリメンタルな再検証とフレームワークの画像・フォントパイプラインを活用します。
パフォーマンス指標
バックエンド
- API p50: < 100ms
- API p95: < 200ms
- DB クエリ p95: < 50ms
- エラー率: < 0.1%
配信
- LCP: < 2.5s
- TTFB: < 800ms
- 初期バンドル: < 200KB
クイックチェックリスト
バックエンド
- データベースクエリを最適化済み
- インデックスを作成し、使用している
- キャッシュを実装済み
- 重い処理にバックグラウンドジョブを使用している
- コネクションプーリングを設定済み
配信
- 初期バンドルサイズが 200KB 未満
- コード分割を実装済み
- 画像を最適化し、遅延読み込みを設定済み
- 圧縮とキャッシュヘッダーを設定済み
測定した高速化や性能低下を報告する前に、pstack スキルのベンチマークチェックリストを参照して数値を検証してください。ボトルネックを特定し、すべての条件が調整済みであることを確認し、エラー数を数え、測定を繰り返してください。
データベースクエリ最適化コード、キャッシュ戦略の実装、N+1 クエリの解決策、バックグラウンドジョブのパターン、インフラストラクチャのチューニング、パフォーマンステストのコマンド、詳細なチェックリストについては、こちらを参照してください: references/full-guide.md