用途
该技能是一个产品遥测工程审计工具,目标是从现有代码库反向工程出分析埋点的当前状态,产出一份事实性的“人口普查”式清单,而不是差距分析或改进建议。它回答的问题是:代码库中实际追踪了什么,而不是应该追踪什么。
主要能力
- SDK 检测:自动识别代码库使用的分析 SDK,包括 Segment(analytics.track/identify/group)、Amplitude(amplitude.track/setUserId/logEvent)、Mixpanel(mixpanel.track/identify/people.set)、PostHog(posthog.capture/identify)以及通用 track/trackEvent/logEvent 调用。检测模式可根据代码库语言调整(Ruby、Python、Go、Java 等)。
- 事件扫描:系统扫描代码库,提取每个埋点调用的事件名称、属性对象、文件与行号以及触发上下文。
- LIVE/ORPHANED 验证:对每个事件定义强制验证是否在代码库中真正被导入和调用,标记为 LIVE 或 ORPHANED,并在审计末尾按域汇总孤儿事件数量。
- 身份管理检查:查找 identify()、group()、page()/screen() 调用以及重置/登出处理,记录调用位置、时机和 traits。
- 当前状态映射:构建反向工程的追踪计划,写入 .telemetry/current-state.yaml,包含事件(名称、状态、位置、属性)、身份管理调用和观察到的模式。
- 卫生观察:记录重复调用、命名不一致、分散调用、缺少上下文等事实性观察,但不给出修复建议。
- 当前埋点架构捕获:记录 SDK 与版本、初始化位置与方式、客户端/服务端、调用路由(直接调用、集中包装、队列、分散)、身份管理方式、环境变量、错误处理、关闭/刷新处理,写入 .telemetry/current-implementation.md。
- Greenfield 快捷处理:若未检测到任何分析 SDK 依赖或埋点调用,则判定为 greenfield 项目,跳过完整审计,仅生成最小 current-state 文件,并建议直接进入设计阶段。
使用方式
该技能通过对话触发,用户可要求“审计当前埋点”或类似指令。执行前会检查 .telemetry/ 文件夹是否存在,若不存在则创建;若存在 .telemetry/product.md 则读取产品上下文(实体模型、功能区域)以使审计更有针对性,否则仍可继续但会建议先运行产品建模技能。审计过程包括:检测 SDK、查找所有埋点调用、验证 LIVE/ORPHANED、查找身份管理、映射当前状态、记录卫生观察、捕获当前埋点架构、生成当前状态摘要。输出文件包括 .telemetry/current-state.yaml、.telemetry/audits/YYYY-MM-DD.md 和 .telemetry/current-implementation.md。对话中仅展示简洁摘要(事件计数、关键模式、孤儿统计),不粘贴超过 20 行原始数据。
适用场景
- 需要了解现有代码库中实际埋点情况的团队,作为设计新追踪计划的输入。
- 在重构或迁移分析系统前,需要一份事实性的当前状态清单。
- 需要识别孤儿事件定义、命名不一致、重复调用等卫生问题的场景。
- 需要记录当前埋点架构(SDK 版本、初始化、调用路由等)以便生成实现指南。
限制
- 该技能只描述现实,不做评判、不建议修复、不设计理想状态;所有输出应像人口普查而非成绩单。
- 不读取 .telemetry/tracking-plan.yaml,避免与理想状态比较;比较发生在设计阶段。
- 事件名称按代码原样记录,不做规范化。
- 属性以 YAML 列表形式记录,不使用简写。
- 可低成本重复运行,代码库变更后可直接再次执行。
- 对于 B2C 产品,group() 调用可能不存在,这属于预期而非差距。
- 若代码库中无任何埋点,则仅生成最小 current-state 文件,不生成审计报告和 current-implementation.md。
- 具体收费、价格、平台支持等信息暂未提供。