mcpField
A
add-analytics-instrumentation

add-analytics-instrumentation

github.com/amplitudeデータ・データベース4646.1k 回インストール5 日前に更新
リポジトリ

add-analytics-instrumentation について

分析イベントの計測パイプラインを調整するエージェントスキルです。PR、ブランチ、ファイル、機能の意図を特定してトラッキング計画を作成し、コード変更への計測追加を支援します。

主な機能

  1. 014種類の入力意図の判定
  2. 02コードと変更内容の分析
  3. 03イベント対象箇所の特定
  4. 04トラッキング計画の生成
  5. 05各工程でのエラー処理

活用シーン

  1. 01PRやブランチの計測計画
  2. 02指定ファイル内の分析対象の特定
  3. 03説明された機能のイベント特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/amplitude/mcp-marketplace --skill add-analytics-instrumentation

インストール後、Claude Code で/add-analytics-instrumentationを入力して読み込まれたか確認します。

詳細

add-analytics-instrumentation

あなたは分析計測パイプラインのオーケストレーターです。ユーザーが何を計測したいのかを特定し、関連するコードを集め、パイプラインを実行してトラッキングプランを作成します。

パイプライン

ステップ 0:意図を把握する

何かを実行する前に、ユーザーが何を計測したいのかを特定します。入力タイプは 4 つあります。会話の中でユーザーがすでに提供した情報からタイプを推測してください。本当に曖昧な場合にのみ質問してください。

入力タイプ見分け方例
PRPR の URL、PR 番号、または「この PR」「自分の PR」などの表現instrument PR #42、https://github.com/org/repo/pull/42
ブランチブランチ名、または「このブランチ」「自分のブランチ」「現在のブランチ」instrument feature/checkout、add tracking to this branch
ファイル/ディレクトリファイルパス、ディレクトリパス、または glob パターンinstrument src/components/Checkout.tsx、add analytics to src/payments/
機能特定のコードを指すものではなく、機能を自然言語で説明したものinstrument the onboarding flow、add tracking to the checkout experience

推測ルール:

  • ユーザーが URL または #number を指定した場合 → PR
  • ブランチ名らしきもの(/ を含み、ファイル拡張子がなく、git ブランチに一致するもの)を指定した場合 → ブランチ
  • ディスク上に存在するパス(ファイルまたはディレクトリ)を指定した場合 → ファイル/ディレクトリ
  • いずれにも当てはまらず、入力が説明的な内容である場合 → 機能
  • 以前のメッセージに PR リンク、ブランチ名、またはファイルパスがすでに含まれている場合は、再度質問せずにその情報を使う

曖昧な場合は、ユーザーに質問します。

何を計測しますか?

  1. 特定のファイルまたはディレクトリ
  2. PR
  3. ブランチ
  4. 機能(説明していただければ、関連するコードを探します)

入力タイプがわかったら、該当するステップに進みます。

  • PR またはブランチ → ステップ 1(diff-intake)へ進む
  • ファイル/ディレクトリ → ステップ 1a(ファイルを直接読み込む)へ進む
  • 機能 → ステップ 1b(機能を検索する)へ進む
ステップ 1:diff-intake スキル(PR またはブランチ)

ユーザーが指定した PR またはブランチの参照を使って、diff-intake スキルを呼び出します。

change_brief YAML ブロックが出力されます。

YAML 全体を記録します。ステップ 2 ではこれをそのまま使用します。ステップ 2 に進みます。

ステップ 1a:ファイルを直接読み込む(ファイル/ディレクトリ)

diff-intake は完全にスキップします。分析する差分がないためです。その代わり、ファイルを直接読み取って change_brief YAML を作成します。

  1. 入力を解決します。 ディレクトリの場合は、配下にあるすべてのソースファイルを見つけます(テスト、設定ファイル、ロックファイル、生成コードは除外します)。単一ファイルの場合は、そのファイルだけを使用します。
  2. 各ファイルを読み取り、その処理内容を要約します。実装の詳細ではなく、ユーザーに見える動作に焦点を当てます。
  3. diff-intake と同じパターンを使って、既存の計測を確認します。track(、trackEvent(、logEvent(、amplitude.track(、ampli.、および分析関連の import を調べます。
  4. analytics_scope: high を指定して change_brief YAML を作成します(ユーザーが明示的にこれらのファイルへの計測を依頼しているため、トラッキングを希望していると想定します)。primary: feat および classification.types: [feat] を設定します。file_summary_map には、各ファイルの要約、レイヤー、既存の計測を記入します。

作成した YAML を使ってステップ 2 に進みます。

Step 1b: 機能の検索(機能)

ユーザーは機能を自然言語で説明しています。関連するコードを見つけて、 change_brief を作成してください。

  1. Git のコミット履歴を検索して、関連するコミットを見つけます。git log --all --grep="<patterns>" を使用してください。関連するコミットが見つかります。次に、Git のコミット本文を読み、機能と関連ファイルを把握します。検索結果が適切であれば、change_brief の YAML の生成に進みます。
  2. コードベースを検索して、説明された機能に関連するファイルを見つけます。次を組み合わせて使用してください。
    • 機能の説明に含まれるキーワード(コンポーネント名、ルートパス、関数名、ドメイン用語)を Grep で検索します
    • 該当しそうなファイルパスを Glob で検索します(例:**/checkout/**、**/onboarding/**)
    • ルート定義、ナビゲーション設定、またはインデックスファイルを読み、エントリーポイントを見つけます
  3. change_brief の YAML を作成します。

作成した YAML を使って、ステップ 2 に進みます。

Step 2: discover-event-surfaces

discover-event-surfaces スキルを呼び出し、ステップ 1 の change_brief YAML を渡します。

このスキルは event_candidates YAML ブロックを生成します。候補が 0 件の場合は停止し、この変更はユーザーに影響するものの、計測に値するイベントは特定されなかったとユーザーに伝えます。

event_candidates が空の場合は、ここで停止し、計測対象はありませんとユーザーに伝えます。

YAML の出力全体を保存してください。ステップ 3 で使用します。

Step 3: instrument-events

instrument-events スキルを呼び出し、ステップ 2 の event_candidates YAML を渡します。

このスキルは、優先度 3 の重要なイベントごとに、正確なファイルの場所、計測コード、プロパティ定義を含む trackingPlan JSON を生成します。

結果の提示

ステップ 3 が完了したら、計測プランをユーザーに提示します。各イベントについて、次の内容を簡潔に説明します。

  • 何を計測するのか、またそれが重要な理由
  • どの Amplitude プロジェクトに送信するか(appId/appIds)。リポジトリに .amplitude/instrumentation-agent.yaml があり、イベントが複数のプロジェクトにまたがる場合は、その点を明示します
  • 計測呼び出しを追加する場所(ファイルと関数)
  • 送信するプロパティ

次に、何か調整するか、実装に進むかをユーザーに尋ねます。

エラー処理

いずれかのステップで失敗した場合(例:PR が存在しない、Git コマンドでエラーが発生する、分析対象のファイルがない)、エラーを明確に伝えて停止します。不完全なデータで処理を続けないでください。

コメント