add-analytics-instrumentation について
分析イベントの計測パイプラインを調整するエージェントスキルです。PR、ブランチ、ファイル、機能の意図を特定してトラッキング計画を作成し、コード変更への計測追加を支援します。
主な機能
- 014種類の入力意図の判定
- 02コードと変更内容の分析
- 03イベント対象箇所の特定
- 04トラッキング計画の生成
- 05各工程でのエラー処理
活用シーン
- 01PRやブランチの計測計画
- 02指定ファイル内の分析対象の特定
- 03説明された機能のイベント特定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ amplitude/ mcp-marketplace --skill add-analytics-instrumentationインストール後、Claude Code で/add-analytics-instrumentationを入力して読み込まれたか確認します。
詳細
add-analytics-instrumentation
あなたは分析計測パイプラインのオーケストレーターです。ユーザーが何を計測したいのかを特定し、関連するコードを集め、パイプラインを実行してトラッキングプランを作成します。
パイプライン
ステップ 0:意図を把握する
何かを実行する前に、ユーザーが何を計測したいのかを特定します。入力タイプは 4 つあります。会話の中でユーザーがすでに提供した情報からタイプを推測してください。本当に曖昧な場合にのみ質問してください。
| 入力タイプ | 見分け方 | 例 |
|---|---|---|
| PR | PR の 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 リンク、ブランチ名、またはファイルパスがすでに含まれている場合は、再度質問せずにその情報を使う
曖昧な場合は、ユーザーに質問します。
何を計測しますか?
- 特定のファイルまたはディレクトリ
- PR
- ブランチ
- 機能(説明していただければ、関連するコードを探します)
入力タイプがわかったら、該当するステップに進みます。
- 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 を作成します。
- 入力を解決します。 ディレクトリの場合は、配下にあるすべてのソースファイルを見つけます(テスト、設定ファイル、ロックファイル、生成コードは除外します)。単一ファイルの場合は、そのファイルだけを使用します。
- 各ファイルを読み取り、その処理内容を要約します。実装の詳細ではなく、ユーザーに見える動作に焦点を当てます。
- diff-intake と同じパターンを使って、既存の計測を確認します。
track(、trackEvent(、logEvent(、amplitude.track(、ampli.、および分析関連の import を調べます。 analytics_scope: highを指定してchange_briefYAML を作成します(ユーザーが明示的にこれらのファイルへの計測を依頼しているため、トラッキングを希望していると想定します)。primary: featおよびclassification.types: [feat]を設定します。file_summary_mapには、各ファイルの要約、レイヤー、既存の計測を記入します。
作成した YAML を使ってステップ 2 に進みます。
Step 1b: 機能の検索(機能)
ユーザーは機能を自然言語で説明しています。関連するコードを見つけて、
change_brief を作成してください。
- Git のコミット履歴を検索して、関連するコミットを見つけます。
git log --all --grep="<patterns>"を使用してください。関連するコミットが見つかります。次に、Git のコミット本文を読み、機能と関連ファイルを把握します。検索結果が適切であれば、change_briefの YAML の生成に進みます。 - コードベースを検索して、説明された機能に関連するファイルを見つけます。次を組み合わせて使用してください。
- 機能の説明に含まれるキーワード(コンポーネント名、ルートパス、関数名、ドメイン用語)を Grep で検索します
- 該当しそうなファイルパスを Glob で検索します(例:
**/checkout/**、**/onboarding/**) - ルート定義、ナビゲーション設定、またはインデックスファイルを読み、エントリーポイントを見つけます
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 コマンドでエラーが発生する、分析対象のファイルがない)、エラーを明確に伝えて停止します。不完全なデータで処理を続けないでください。