configure-sentry について
フロントエンド、Next.js、Node.js、PythonプロジェクトのSentryエラー追跡を確認・設定するスキルです。プロジェクト単位の設定と準拠状況を扱い、イベント照会やアラート管理は対象外です。
主な機能
- 01プロジェクト種別と対応SDKの判定
- 02DSN、サンプリング、初期化設定の確認
- 03ソースマップとCI/CD連携の確認
- 04認証情報と設定のセキュリティ検査
- 05問題の報告と修正の適用
活用シーン
- 01新規プロジェクトへのSentryエラー追跡設定
- 02プロジェクト基準に沿ったSentry設定の監査
- 03ハードコードされたDSNや環境変数の不足を修正
- 04CI/CDにソースマップ送信とリリース追跡を追加
MCP 対応
Sentry APIへのアクセスやイベント照会には、関連ツールとしてSentry MCPサーバーを参照します。このスキル自体はプロジェクト設定を確認し、Sentryデータの照会は行いません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill configure-sentryインストール後、Claude Code で/configure-sentryを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
/configure:sentry
プロジェクトの基準に照らして、Sentry のエラー追跡統合を確認し、設定します。
このスキルを使うタイミング
| このスキルを使う場合 | 別の方法を使う場合 |
|---|---|
| 新しいプロジェクトに Sentry のエラー追跡を設定する場合 | 特定の Sentry の問題やアラートをデバッグする場合(Sentry MCP サーバーを使用) |
| Sentry 固有のセットアップとコンプライアンスを詳しく確認する場合 | 可観測性スタック全体(OTel のトレース/メトリクスとロギング)を接続する場合(/configure:instrumentation を使用してください。Sentry に関する不足項目はここに委譲されます) |
| Sentry SDK のインストールと設定が基準に準拠しているか確認する場合 | Sentry のイベントやパフォーマンスデータを照会する場合(Sentry API/MCP を使用) |
| ハードコードされた DSN や環境変数参照の欠落を修正する場合 | Sentry ダッシュボードで Sentry プロジェクトの設定を管理する場合 |
| CI/CD にソースマップのアップロードとリリース追跡を追加する場合 | Sentry のアラートルールや通知チャネルを設定する場合 |
| フロントエンド、Next.js、Node.js、Python プロジェクト全体で Sentry の設定を確認する場合 | 別のエラー追跡ツール(Bugsnag、Rollbar など)をインストールする場合 |
| プロファイリング、構造化ロギング、エンリッチメント用ヘルパーを追加する場合 | Sentry のアラートルールや通知チャネルを設定する場合 |
| プロジェクトレベルのセットアップとコンプライアンスを監査する場合 | 日常的な SDK の使用パターン(スパン、パンくずリスト、Cron の監視、リプレイ)を扱う場合(typescript-plugin:typescript-sentry を使用) |
コンテキスト
- Package.json: !
find . -maxdepth 1 -name \'package.json\' - Pyproject.toml: !
find . -maxdepth 1 -name \'pyproject.toml\' - Requirements.txt: !
find . -maxdepth 1 -name \'requirements.txt\' - プロジェクト標準: !
find . -maxdepth 1 -name '.project-standards.yaml' -type f - package.json 内の Sentry: !
find . -maxdepth 1 -name 'package.json' -exec grep -o '"@sentry/[^"]*"' {} + - pyproject.toml 内の Sentry: !
find . -maxdepth 1 -name 'pyproject.toml' -exec grep 'sentry' {} + - Sentry の初期化ファイル: !
find . -maxdepth 3 -name "*sentry*" -type f - Next.js の設定: !
find . -maxdepth 1 -name 'next.config.*' - インストルメンテーションファイル: !
find . -path '*/src/*' -maxdepth 2 -name 'instrumentation*' -type f - DSN を参照する環境ファイル: !
find . \( -name '.env*' -o -path '*/.github/workflows/*' \) -type f -exec grep -l 'SENTRY_DSN' {} + - CI ワークフロー: !
find . -path '*/.github/workflows/*' -maxdepth 3 -name '*.yml'
参照スキル: sentry(Sentry API 用 MCP サーバー)
パラメーター
$ARGUMENTS から次の項目を解析します。
| フラグ | 説明 |
|---|---|
--check-only | 修正を提案せずにステータスを報告します |
--fix | 確認を求めずにすべての修正を自動適用します |
--type <type> | プロジェクトタイプの検出結果(frontend、nextjs、python、node)を上書きします |
バージョン確認
重要: Sentry SDK を設定する前に、最新バージョンを確認してください。
- @sentry/vue / @sentry/react: npm を確認します
- @sentry/nextjs: npm を確認します
- @sentry/node: npm を確認します
- sentry-sdk(Python): PyPI を確認します
- @sentry/vite-plugin: npm を確認します
Sentry の設定前に WebSearch または WebFetch を使って、SDK の現在のバージョンを確認してください。
実行
次の Sentry コンプライアンスチェックを実行します。
ステップ 1: プロジェクトタイプを検出する
適切な SDK と設定を選ぶため、プロジェクトタイプを判定します。
.project-standards.yamlのproject_typeフィールドを読み取ります- 見つからない場合は自動検出します。
- nextjs:
next依存関係を含むpackage.jsonがある場合(@sentry/nextjsを確認) - frontend: vue/react 依存関係を含む
package.jsonがある場合(Next.js は除く) - node: Node.js バックエンド(express、fastify など)を含む
package.jsonがある場合 - python:
pyproject.tomlまたはrequirements.txtがある場合
- nextjs:
--typeフラグが指定されている場合は、その値を使用します
Step 2: SDK のインストールを確認する
検出されたプロジェクトタイプに基づいて、Sentry SDK を確認します。
Next.js:
- package.json の dependencies に
@sentry/nextjsがある @sentry/profiling-node(サーバーのプロファイリングに推奨)
フロントエンド(Vue/React):
- package.json の dependencies に
@sentry/vueまたは@sentry/reactがある - ソースマップ用の
@sentry/vite-plugin
Node.js バックエンド:
- package.json の dependencies に
@sentry/nodeがある @sentry/profiling-node(推奨)
Python:
- pyproject.toml または requirements.txt に
sentry-sdkがある - フレームワーク統合(django、flask、fastapi)
Step 3: 設定を分析する
Sentry の初期化ファイルを読み、REFERENCE.md の準拠表と照合します。以下を検証します。
- DSN が環境変数から取得されている(ハードコードされていない)
- トレーシングのサンプルレートが設定されている(本番環境と開発環境で異なる)
- ソースマップが有効になっている(フロントエンド/Next.js)
- 初期化の場所が正しい(Node.js:他のインポートより前)
- フレームワーク統合が有効になっている(Python)
Next.js プロジェクトでの追加確認項目:
src/instrumentation.tsがあり、register()とonRequestErrorをエクスポートしているsrc/instrumentation-client.tsがあり、クライアント側の Sentry 初期化を行っている- プロジェクトルートに
sentry.server.config.tsとsentry.edge.config.tsがある next.config.mjsで設定をwithSentryConfig()でラップしている- トンネルルートが設定されている(
tunnelRoute: "/monitoring") - ソースマップが非表示になり、アップロード後に削除される(
hideSourceMaps、deleteSourcemapsAfterUpload) @sentry/profiling-nodeがserverExternalPackagesに記載されている- エラーバウンダリがある(
src/app/error.tsx、src/app/global-error.tsx) - 構造化ロギングが有効になっている(
enableLogs: true) beforeSendで機密性の高いヘッダーを除去しているbeforeSendTransactionでトランザクションをフィルタリングしている(ヘルスチェックと静的アセットを除外)
Step 4: セキュリティチェックを実行する
- ソースファイルに DSN がハードコードされていないことを確認する
- DSN が Git で追跡されるファイルにコミットされていないことを確認する
- フロントエンドコードに認証トークンがないことを確認する
- 本番環境のサンプルレートが妥当であることを確認する(1.0 ではない)
Step 5: 結果を報告する
以下を含む準拠レポートを出力します。
- プロジェクトタイプ(検出または上書きされたもの)
- SDK のバージョンとインストール状況
- 設定チェックの結果(PASS/WARN/FAIL)
- セキュリティチェックの結果
- 不足している設定項目
- 推奨事項
--check-only が指定されている場合は、ここで終了します。
Step 6: 修正を適用する(--fix が指定された場合、またはユーザーが確認した場合)
- SDK が不足している場合:適切な Sentry SDK を依存関係に追加する
- Vite プラグインが不足している場合:ソースマップ用に
@sentry/vite-pluginを追加する - 設定ファイルが不足している場合:REFERENCE.md のテンプレートを使用して Sentry 初期化ファイルを作成する
- DSN がハードコードされている場合:環境変数への参照に置き換える
- サンプルレートが不足している場合:推奨サンプルレートを追加する
Step 7: CI/CD 統合を確認する
CI/CD での Sentry 統合を確認します。
SENTRY_AUTH_TOKENシークレットが設定されている- ビルドワークフローにソースマップのアップロード手順がある
- デプロイ時にリリースを作成する
不足している場合は、REFERENCE.md の推奨ワークフロー手順を追加するよう提案します。
Step 8: 標準の追跡情報を更新する
.project-standards.yaml を更新または作成します。
standards_version: "2025.1"
project_type: "<detected>"
last_configured: "<timestamp>"
components:
sentry: "2025.1"
環境変数
| 変数 | 説明 | 必須 |
|---|---|---|
SENTRY_DSN | Sentry Data Source Name(サーバー側) | はい |
NEXT_PUBLIC_SENTRY_DSN | クライアント側の Sentry DSN(Next.js) | Next.js のみ |
SENTRY_ENVIRONMENT | 環境名(サーバー側) | 推奨 |
NEXT_PUBLIC_SENTRY_ENVIRONMENT | 環境名(クライアント側、Next.js) | Next.js のみ |
SENTRY_ORG | Sentry 組織のスラッグ | ソースマップ用 |
SENTRY_PROJECT | Sentry プロジェクトのスラッグ | ソースマップ用 |
SENTRY_AUTH_TOKEN | CI/CD 用の認証トークン | ソースマップ用 |
NEXT_PUBLIC_SENTRY_SKIP_BUILD | ビルド時に Sentry webpack プラグインをスキップ | コンテナビルド |
DSN や認証トークンをコミットしないでください。環境変数またはシークレット管理を使用してください。
詳細な設定チェック表、初期化テンプレート、CI/CD ワークフローの例については、REFERENCE.md を参照してください。
エージェント向けの最適化
| コンテキスト | コマンド |
|---|---|
| コンプライアンスの簡易チェック | /configure:sentry --check-only |
| すべての問題を自動修正 | /configure:sentry --fix |
| フロントエンドプロジェクトのみ | /configure:sentry --type frontend |
| Next.js プロジェクト | /configure:sentry --type nextjs |
| Python プロジェクトのみ | /configure:sentry --type python |
| Node.js プロジェクトのみ | /configure:sentry --type node |
| ハードコードされた DSN を確認 | rg -l 'https://[a-f0-9]*@.*sentry\.io' --type-not env |
エラー処理
- Sentry SDK がない:プロジェクトの種類に適した SDK のインストールを提案します
- ハードコードされた DSN:FAIL として報告し、環境変数参照を使った修正を提案します
- 無効な DSN 形式:エラーを報告し、DSN 形式に関するガイダンスを提示します
- Sentry プロジェクトがない:警告を報告し、セットアップ手順を提示します
関連項目
/configure:instrumentation- オブザーバビリティスタック全体(OTel トレース/メトリクス、構造化ログ)。Sentry の不足部分はこのスキルに委任します/configure:all- すべてのコンプライアンスチェックを実行/configure:status- コンプライアンスの概要を簡易表示/configure:workflows- GitHub Actions との統合typescript-plugin:typescript-sentry- Bun/Node.js/Next.js 向けの日常的な Sentry SDK の使用方法(スパン、パンくずリスト、Cron モニタリング、リプレイ)sentryMCP サーバー - プロジェクト検証用の Sentry API アクセス