product-tracking-instrument-new-feature について
product-tracking-instrument-new-feature は、機能変更に合わせてプロダクトの計測を管理するチーム向けのスキルです。イベントの追加・変更・廃止を判断し、計画、差分、変更履歴を更新します。
主な機能
- 01機能変更に伴う計測要否の評価
- 02イベントとプロパティの設計
- 03既存イベントの確認と拡張
- 04計測計画と変更履歴の更新
- 05実装箇所と呼び出し内容の記録
活用シーン
- 01新機能の主要イベントを計画
- 02既存フロー変更の計測影響を評価
- 03削除機能に関連するイベントを廃止
- 04複数機能の計測更新をまとめて処理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ accoil/ product-tracking-skills --skill product-tracking-instrument-new-featureインストール後、Claude Code で/product-tracking-instrument-new-featureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/anti-patterns.mdevent-categories.mdnaming-conventions.mdpersistence.md詳細
機能の計測
製品の進化に合わせてトラッキングの一貫性を保つ、プロダクトテレメトリーエンジニアです。機能のリリース、変更、削除に際して、トラッキングへの影響を判断し、対応します。
リファレンス一覧
| ファイル | 内容 | 読むタイミング |
|---|---|---|
references/naming-conventions.md | イベント/プロパティの命名規則 | 新しいイベントを命名するとき |
references/persistence.md | .telemetry/ フォルダーの構造、変更履歴 | 成果物を正しく更新するとき |
references/event-categories.md | イベント分類とカバレッジ | 新しいイベントを分類するとき |
references/anti-patterns.md | トラッキングで避けるべきこと | 追加内容をレビューするとき |
目標
機能のリリースまたは変更時に、以下を判断します。
- 新しいトラッキングが必要か
- 既存のトラッキングを変更する必要があるか
- トラッキングの変更が不要か
そのうえで、差分の概要を作成し、対象のプランを更新します。
出力:更新済みの .telemetry/tracking-plan.yaml + .telemetry/delta.md + .telemetry/changelog.md
前提条件
開始前に確認してください:
.telemetry/tracking-plan.yaml(必須)— 更新対象となる現在のトラッキングプランです。存在しない場合は作業を中止し、ユーザーに次のように伝えてください:「更新する既存のトラッキングプランが必要です。まず product-tracking-design-tracking-plan スキルを実行して初期プランを作成してください(例:「トラッキングプランを設計」)。その後、機能のリリース時にここに戻ってください。」.telemetry/product.md(推奨)— トラッキングの強度(中核機能か補助機能か)の調整に役立ちます。存在しない場合も作業を続けますが、コンテキストが不足していることを記録してください。
発動シナリオ
| シナリオ | 対応 |
|---|---|
| 新機能のリリース | 価値を評価し、必要に応じてイベントを設計して、プランを更新する |
| 既存機能の変更 | 既存イベントへの影響を評価し、変更または拡張する |
| 機能の削除 | 関連イベントを非推奨にし、削除のタイムラインを設定する |
| 監査で見つかった修正事項 | 監査に基づく修正を適用し、プランを更新する |
| 定期レビュー | 古くなったイベントやカバレッジの不足を確認する |
まとめて対応する場合: 複数の機能を1回のセッションで評価できます。変更を1回のバージョン更新と1件の変更履歴エントリーにまとめ、機能ごとにサブエントリーを設けます。スプリントの終わりに複数の機能をまとめてリリースするときによく行われます。
手順
1. 変更内容を把握する
次の質問をします。
- 「どの機能がリリースまたは変更されましたか?」
- 「この機能でユーザーが行う主な操作は何ですか?」
- 「これは中核的な価値ですか、それとも補助的な機能ですか?」
または、PR/コミット/機能仕様に基づいて作業する場合は、関連するコンテキストを直接確認します。
2. トラッキングの必要性を評価する
すべての機能に新しいイベントが必要なわけではありません。次の点を確認します。
この機能によって新たな価値が生まれますか?
- 価値をもたらす新しいユーザー操作 → おそらくイベントが必要です
- 既存機能のUI配置の変更 → おそらく必要ありません
既存のフローを拡張しますか?
- 既存のワークフローに新しいステップを追加する → プロパティで既存イベントを拡張する場合があります
- 既存の操作に新しいバリエーションを追加する → 新しいイベントではなく、列挙値を追加します
補助機能ですか、それとも中核機能ですか?
- 中核的な価値を持つ機能 → 詳細なプロパティを備えた主要イベント
- 補助機能 → 適切ながらも、より軽量なカバレッジ
最小限にするための確認:「このイベントを単独でクエリする人はいるでしょうか?」いない場合は、既存イベントのプロパティにする方が適切かもしれません。
3. デルタを設計する
新しいイベントの場合:
- 命名規則(object.action、snake_case)に従います
- カテゴリを割り当てます
- 型を指定してプロパティを定義します
- 予想される発生頻度を設定します
- グループレベルを割り当てます
グループ階層のない B2C 製品では、グループレベルの割り当てを省略します。イベントはユーザーレベルのみです。
変更するイベントの場合:
- 破壊的変更の影響を評価します:
| 変更 | 破壊的変更か | 対応 |
|---|---|---|
| 任意のプロパティを追加 | いいえ | そのまま追加 |
| 必須プロパティを追加 | はい | まず任意にするか、バージョンを上げる |
| 列挙型を拡張 | いいえ | 新しい値を追加 |
| 列挙型を制限 | はい | 非推奨期間を設ける |
| イベント名を変更 | はい | 新しいイベントを追加し、古いイベントを非推奨にする |
| プロパティの型を変更 | はい | 新しいプロパティを追加し、古いプロパティを非推奨にする |
非推奨にするイベントの場合:
- 理由と削除日を記載して非推奨にします
- 置き換えがある場合は移行手順を文書化します
- 削除日まではプランに残し、その後に削除します
4. 既存のイベントと照合する
新しいイベントを追加する前に:
- プロパティを追加して拡張できる類似イベントはありませんか?
- 既存のイベントに追加するのが適切ではありませんか?
- ほぼ重複するイベントを作成していませんか?
イベントよりプロパティを優先: ai_report.created を別途作成するより、report.created に { report_type: 'ai_generated' } を指定するほうが適切です。
5. プランを更新する
.telemetry/tracking-plan.yaml を変更します:
イベントの追加:
- name: feature.action
category: core_value
description: User does the new thing
added_version: "1.1.0"
properties:
- name: property_name
type: string
required: true
イベントの非推奨化:
- name: old_feature.action
deprecated: true
deprecated_version: "1.1.0"
deprecated_reason: "Feature removed"
remove_after: "YYYY-MM-DD"
migration: "No replacement" | "Use new_feature.action"
meta.version と meta.updated を更新します。
6. 変更履歴を更新する
.telemetry/changelog.md に追記します:
## [1.1.0] - YYYY-MM-DD
### Added
- `feature.action` event for [feature description]
### Changed
- `existing.event`: added optional `new_prop`
### Deprecated
- `old.event`: [reason] (removal: YYYY-MM-DD)
### Migration Notes
[If applicable]
7. デルタを更新する
.telemetry/delta.md が存在する場合は、新しい変更を追加します。存在しない場合は作成します。
8. 実装箇所を文書化する
新規または変更した各イベントについて、デルタに次の情報を記載します:
- トラッキング呼び出しを追加するコードベース内の場所(ファイルと関数/ハンドラー)
- イベント呼び出しに含める内容(イベント名、必須プロパティ、グループコンテキスト)
- ID またはグループ呼び出しの更新が必要かどうか
これにより、実装のロードマップが作成されます。実際のコード生成は product-tracking-implement-tracking スキルで行います。次のステップとして提案してください。
バージョニング
セマンティックバージョニングを使用します:
- メジャー(1.0 → 2.0): 破壊的変更(イベントの削除、必須プロパティの追加)
- マイナー(1.0 → 1.1): 新しいイベント、新しい任意プロパティ
- パッチ(1.0.0 → 1.0.1): ドキュメント、説明の修正
出力の概要
更新のたびに、次の内容を生成します:
# Tracking Plan Update
**Version:** 1.0.0 → 1.1.0
**Date:** YYYY-MM-DD
**Reason:** [feature name]
## Changes
- Added: `feature.action`
- Modified: `existing.event` (new optional property)
- Deprecated: `old.event`
## Implementation Required
- [ ] Add tracking for `feature.action` in [location]
- [ ] Update `existing.event` in [location]
## Breaking Changes
None / [list]
## Regenerate Code
Run the **product-tracking-implement-tracking** skill to update SDK wrapper (e.g., *"implement tracking"*).
動作ルール
-
最初は対象を絞ります。 新機能に10個ものイベントは必要ありません。まず主要なアクションを捉える1〜2個から始めます。必要に応じて後から追加します。
-
新規追加より拡張を優先します。 新しいイベントを作成する前に、既存のイベントにプロパティを追加して拡張できないか、必ず確認します。
-
プランをすべて読みます。 変更を加える前に、tracking-plan.yaml の全体を読みます。以前の会話のコンテキストには頼らず、成果物を信頼できる情報源とします。
-
すべてバージョン管理します。 変更のたびにバージョンを上げ、変更履歴に記録します。変更を黙って反映してはいけません。
-
削除ではなく非推奨にします。 イベントはまず非推奨にし、その後で削除します。これにより、利用者が対応する時間を確保できます。
-
コンテキストを考慮します。 コアフローの新機能には、小さな設定変更よりも細かいトラッキングが必要です。製品モデルを参考に調整します。
-
プランを最新の状態に保ちます。 トラッキングプランには常に意図が反映されている必要があります。実態とずれている場合は、プランを更新するか、実態を修正します。
-
ファイルに書き込み、会話では要約します。 プランの更新と実装に関する指針はファイルに記録します。会話では簡潔な要約(変更内容、バージョン更新、実装手順)のみを示します。生データを20行を超えてチャットに貼り付けてはいけません。
-
検討過程ではなく、決定事項を示します。 推論は内部で行います。ユーザーには、決定した内容とその理由を示し、決定に至る過程は見せません。
ライフサイクル
model → audit → design → guide → implement ← feature updates
^
次のフェーズ
機能の計測を行った後、ユーザーに次の実行を提案します。
- product-tracking-implement-tracking — 新規または変更されたイベントのコードを生成または更新します(例:「トラッキングを実装」、「コードを生成」、「トラッキングモジュールを更新」)
- product-tracking-audit-current-tracking — 実装が要件に合致していることを確認するため、必要に応じて再監査します(例:「トラッキングを監査」、「トラッキングを検証」)