关于 add-analytics-instrumentation
用于协调分析埋点流程的 Agent 技能,可从识别 PR、分支、文件或功能开始,最终生成跟踪计划,适合为代码变更添加分析埋点的团队。
主要功能
- 01识别四类输入意图
- 02分析代码与变更
- 03发现事件触点
- 04生成跟踪计划
- 05处理流程步骤错误
适用场景
- 01为 PR 或分支规划埋点
- 02在指定文件中查找分析目标
- 03为描述的功能识别事件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ amplitude/ mcp-marketplace --skill add-analytics-instrumentation安装后在 Claude Code 中输入/add-analytics-instrumentation确认已加载。
详细介绍
add-analytics-instrumentation
你是分析埋点流水线的协调器。你的任务是弄清楚用户想要为哪些内容添加埋点,收集相关代码,并运行流水线以生成跟踪计划。
流水线
步骤 0:明确意图
运行任何操作之前,先确定用户想要为什么添加埋点。有四种输入类型——根据用户在对话中已提供的信息推断类型。只有在确实无法判断时才询问。
| 输入类型 | 判断方法 | 示例 |
|---|---|---|
| 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.,以及 与分析相关的导入。 - 使用
analytics_scope: high构建change_briefYAML(用户 明确要求为这些文件添加埋点,因此默认认为他们希望添加跟踪)。设置primary: feat和classification.types: [feat]。在file_summary_map中填写每个文件的摘要、层级和现有 埋点信息。
使用你构建的 YAML 继续步骤 2。
步骤 1b:功能搜索(Feature)
用户用自然语言描述了某项功能。你的任务是找到相关代码,然后构建一个 change_brief。
- 搜索 git 提交历史,查找相关提交。使用
git log --all --grep="<patterns>"。这会找到相关提交。然后阅读 git 提交正文,了解该功能和相关文件。如果结果符合要求,则继续生成change_briefYAML - 搜索代码库,查找与所描述功能相关的文件。结合使用:
- 使用 Grep 搜索功能描述中的关键词(组件名称、路由路径、函数名称、领域术语)
- 使用 Glob 匹配可能的文件路径(例如,
**/checkout/**、**/onboarding/**) - 阅读路由定义、导航配置或索引文件,查找入口点
- 构建
change_briefYAML。
使用你构建的 YAML 继续执行步骤 2。
步骤 2:discover-event-surfaces
调用 discover-event-surfaces 技能,并传入步骤 1 中的 change_brief YAML。
它会生成一个 event_candidates YAML 块。如果没有候选项,请停止,并告知用户此变更会影响用户,但未发现值得埋点的事件。
如果 event_candidates 为空,请在此处停止,并告知用户没有需要埋点的内容。
完整保留 YAML 输出——步骤 3 会用到它。
步骤 3:instrument-events
调用 instrument-events 技能,并传入步骤 2 中的 event_candidates YAML。
它会生成一个 trackingPlan JSON,其中包含每个关键事件(优先级 3)的确切文件位置、跟踪代码和属性定义。
呈现结果
步骤 3 完成后,向用户呈现跟踪计划。简要介绍每个事件:
- 跟踪的内容及其重要性
- 事件会发送到哪些 Amplitude 项目(
appId/appIds)——如果代码库中有.amplitude/instrumentation-agent.yaml,且事件涉及多个项目,请明确说明 - 跟踪调用所在的位置(文件 + 函数)
- 发送的属性
然后询问用户是否要调整内容或继续实施。
错误处理
如果任何步骤失败(例如,PR 不存在、git 命令报错、没有文件可供分析),请清楚地说明错误并停止。不要尝试使用不完整的数据继续操作。