mcpField
C
configure-sentry

configure-sentry

github.com/laurigatesクラウド・DevOps5955 回インストール1 日前に更新
リポジトリ

configure-sentry について

フロントエンド、Next.js、Node.js、PythonプロジェクトのSentryエラー追跡を確認・設定するスキルです。プロジェクト単位の設定と準拠状況を扱い、イベント照会やアラート管理は対象外です。

主な機能

  1. 01プロジェクト種別と対応SDKの判定
  2. 02DSN、サンプリング、初期化設定の確認
  3. 03ソースマップとCI/CD連携の確認
  4. 04認証情報と設定のセキュリティ検査
  5. 05問題の報告と修正の適用

活用シーン

  1. 01新規プロジェクトへのSentryエラー追跡設定
  2. 02プロジェクト基準に沿ったSentry設定の監査
  3. 03ハードコードされたDSNや環境変数の不足を修正
  4. 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 を設定する前に、最新バージョンを確認してください。

  1. @sentry/vue / @sentry/react: npm を確認します
  2. @sentry/nextjs: npm を確認します
  3. @sentry/node: npm を確認します
  4. sentry-sdk(Python): PyPI を確認します
  5. @sentry/vite-plugin: npm を確認します

Sentry の設定前に WebSearch または WebFetch を使って、SDK の現在のバージョンを確認してください。

実行

次の Sentry コンプライアンスチェックを実行します。

ステップ 1: プロジェクトタイプを検出する

適切な SDK と設定を選ぶため、プロジェクトタイプを判定します。

  1. .project-standards.yaml の project_type フィールドを読み取ります
  2. 見つからない場合は自動検出します。
    • 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 がある場合
  3. --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 の準拠表と照合します。以下を検証します。

  1. DSN が環境変数から取得されている(ハードコードされていない)
  2. トレーシングのサンプルレートが設定されている(本番環境と開発環境で異なる)
  3. ソースマップが有効になっている(フロントエンド/Next.js)
  4. 初期化の場所が正しい(Node.js:他のインポートより前)
  5. フレームワーク統合が有効になっている(Python)

Next.js プロジェクトでの追加確認項目:

  1. src/instrumentation.ts があり、register() と onRequestError をエクスポートしている
  2. src/instrumentation-client.ts があり、クライアント側の Sentry 初期化を行っている
  3. プロジェクトルートに sentry.server.config.ts と sentry.edge.config.ts がある
  4. next.config.mjs で設定を withSentryConfig() でラップしている
  5. トンネルルートが設定されている(tunnelRoute: "/monitoring")
  6. ソースマップが非表示になり、アップロード後に削除される(hideSourceMaps、deleteSourcemapsAfterUpload)
  7. @sentry/profiling-node が serverExternalPackages に記載されている
  8. エラーバウンダリがある(src/app/error.tsx、src/app/global-error.tsx)
  9. 構造化ロギングが有効になっている(enableLogs: true)
  10. beforeSend で機密性の高いヘッダーを除去している
  11. beforeSendTransaction でトランザクションをフィルタリングしている(ヘルスチェックと静的アセットを除外)
Step 4: セキュリティチェックを実行する
  1. ソースファイルに DSN がハードコードされていないことを確認する
  2. DSN が Git で追跡されるファイルにコミットされていないことを確認する
  3. フロントエンドコードに認証トークンがないことを確認する
  4. 本番環境のサンプルレートが妥当であることを確認する(1.0 ではない)
Step 5: 結果を報告する

以下を含む準拠レポートを出力します。

  • プロジェクトタイプ(検出または上書きされたもの)
  • SDK のバージョンとインストール状況
  • 設定チェックの結果(PASS/WARN/FAIL)
  • セキュリティチェックの結果
  • 不足している設定項目
  • 推奨事項

--check-only が指定されている場合は、ここで終了します。

Step 6: 修正を適用する(--fix が指定された場合、またはユーザーが確認した場合)
  1. SDK が不足している場合:適切な Sentry SDK を依存関係に追加する
  2. Vite プラグインが不足している場合:ソースマップ用に @sentry/vite-plugin を追加する
  3. 設定ファイルが不足している場合:REFERENCE.md のテンプレートを使用して Sentry 初期化ファイルを作成する
  4. DSN がハードコードされている場合:環境変数への参照に置き換える
  5. サンプルレートが不足している場合:推奨サンプルレートを追加する
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_DSNSentry Data Source Name(サーバー側)はい
NEXT_PUBLIC_SENTRY_DSNクライアント側の Sentry DSN(Next.js)Next.js のみ
SENTRY_ENVIRONMENT環境名(サーバー側)推奨
NEXT_PUBLIC_SENTRY_ENVIRONMENT環境名(クライアント側、Next.js)Next.js のみ
SENTRY_ORGSentry 組織のスラッグソースマップ用
SENTRY_PROJECTSentry プロジェクトのスラッグソースマップ用
SENTRY_AUTH_TOKENCI/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 モニタリング、リプレイ)
  • sentry MCP サーバー - プロジェクト検証用の Sentry API アクセス

コメント