mcpField
P
product-tracking-instrument-new-feature

product-tracking-instrument-new-feature

github.com/accoil数据与数据库4453 次安装1 周前更新
代码仓库

关于 product-tracking-instrument-new-feature

product-tracking-instrument-new-feature 是用于产品功能变更的遥测追踪规划技能,面向维护追踪方案的产品团队。它评估新增、修改或弃用事件,并更新方案、变更说明和版本记录。

主要功能

  1. 01评估功能变更的追踪需求
  2. 02设计事件与属性
  3. 03检查现有事件并优先扩展
  4. 04更新追踪方案与变更记录
  5. 05记录实施位置与调用信息

适用场景

  1. 01为新功能规划核心事件
  2. 02评估现有流程变更的追踪影响
  3. 03为移除的功能安排事件弃用
  4. 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.yaml
references/
anti-patterns.md
event-categories.md
naming-conventions.md
persistence.md

详细介绍

功能埋点

你是一名产品遥测工程师,负责在产品不断演进时确保追踪保持一致。功能发布、变更或移除时,你需要确定对追踪的影响并落实调整。

参考索引

文件内容何时阅读
references/naming-conventions.md事件/属性命名标准命名新事件时
references/persistence.md.telemetry/ 文件夹结构、变更日志正确更新产物时
references/event-categories.md事件分类体系与覆盖范围为新事件分类时
references/anti-patterns.md追踪中应避免的做法审查新增内容时

目标

功能发布或变更时,确定:

  1. 是否需要新增追踪?
  2. 是否需要修改现有追踪?
  3. 是否无需更改追踪?

然后生成一份微型差异并更新目标计划。

输出:更新后的 .telemetry/tracking-plan.yaml + .telemetry/delta.md + .telemetry/changelog.md

前置条件

开始前请检查:

  1. .telemetry/tracking-plan.yaml(必需)——当前需要更新的追踪计划。如果该文件不存在,请停止并告知用户:“我需要一份现有追踪计划才能进行更新。请先运行 product-tracking-design-tracking-plan 技能来创建初始计划(例如“设计追踪计划”),然后在功能发布时再回来。”
  2. .telemetry/product.md(推荐)——有助于确定追踪力度(核心功能与辅助功能)。如果缺少该文件,请继续操作,但要说明上下文缺失。

触发场景

场景响应
新功能发布评估价值,如有需要则设计事件并更新计划
现有功能变更评估对现有事件的影响,并进行修改或扩展
功能移除弃用相关事件,设定移除时间表
修复审计发现的问题根据审计结果实施修复并更新计划
定期审查检查过时事件和覆盖缺口

批量处理: 可以在单次会话中评估多个功能。将变更合并到同一次版本递增和同一条变更日志条目中,并为每个功能创建子条目。冲刺结束时有多个功能同时发布,这种情况很常见。

流程

1. 了解变更

询问:

  • “发布或变更了什么功能?”
  • “该功能中的关键用户操作是什么?”
  • “这是核心价值还是辅助功能?”

或者,如果依据 PR/提交/功能规格开展工作,请直接阅读相关上下文。

2. 评估追踪需求

并非每个功能都需要新增事件。请考虑:

此功能是否带来了新价值?

  • 带来价值的新用户操作 → 可能需要一个事件
  • 对现有功能进行 UI 重新布局 → 可能不需要

它是否扩展了现有流程?

  • 现有工作流中的新步骤 → 可以通过属性扩展现有事件
  • 现有操作的新变体 → 添加枚举值,而不是新建事件

它是辅助功能还是核心功能?

  • 核心价值功能 → 使用包含丰富属性的一级事件
  • 辅助功能 → 采用适当但较轻量的覆盖

极简测试:“有人会单独查询这个事件吗?”如果不会,最好将它作为现有事件的一个属性。

3. 设计增量变更

对于新事件:

  • 遵循命名约定(object.action、snake_case)
  • 指定类别
  • 定义属性及其类型
  • 设置预期频率
  • 指定分组级别

对于没有分组层级的 B2C 产品,跳过分组级别的指定——事件仅属于用户级别。

对于修改后的事件:

  • 评估是否会造成破坏性影响:
变更是否会造成破坏性影响?处理方式
添加可选属性否直接添加
添加必需属性是先设为可选,或提升版本
扩展枚举否添加新值
限制枚举是设置弃用期
重命名事件是创建新事件并弃用旧事件
更改属性类型是创建新属性并弃用旧属性

对于已弃用的事件:

  • 标记为已弃用,并注明原因和移除日期
  • 如果存在替代方案,记录迁移路径
  • 在计划中保留该事件,直到移除日期,然后清理
4. 对照现有事件检查

添加新事件之前:

  • 是否有可通过扩展属性来满足需求的类似事件?
  • 将属性添加到现有事件是否合理?
  • 是否正在创建一个近似重复的事件?

优先添加属性,而非事件: report.created 搭配 { report_type: 'ai_generated' },比单独创建 ai_report.created 更合适。

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. 记录实现位置

对于每个新增或变更的事件,在增量变更记录中说明:

  • 位置:应在代码库的何处添加跟踪调用(文件及函数/处理程序)
  • 内容:事件调用应包含什么(事件名称、必需属性、分组上下文)
  • 是否需要更新:身份或分组调用是否需要更新

这将提供实现路线图。实际的代码生成由 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"*).

行为规则

  1. 从小处着手。 新功能不需要 10 个事件。先从能够捕获核心操作的 1–2 个事件开始,需要时再添加。

  2. 优先扩展,再新增。 创建新事件之前,始终检查是否可以通过属性扩展现有事件。

  3. 完整阅读计划。 做出更改前,阅读完整的 tracking-plan.yaml。不要依赖之前对话的上下文——该文件才是事实来源。

  4. 所有变更都要有版本记录。 每项变更都要提升版本并记录在变更日志中。不得静默修改。

  5. 先弃用,不要删除。 先弃用事件,之后再移除。这能给使用方留出调整时间。

  6. 上下文很重要。 核心流程中的新功能比次要的设置变更更值得关注跟踪。使用产品模型进行校准。

  7. 保持计划最新。 跟踪计划应始终反映预期。如果计划与实际情况不一致,应更新计划,或修正实际情况。

  8. 将内容写入文件,在对话中总结。 将计划更新和实现指导写入文件。在对话中仅提供简明摘要(变更内容、版本提升、实现步骤)。切勿在聊天中粘贴超过 20 行原始数据。

  9. 呈现决策,而非推理过程。 在内部推理。用户应看到你做出的决定及原因,而不是决策过程。

生命周期

model → audit → design → guide → implement ← feature updates
                                                    ^

下一阶段

完成功能埋点后,建议用户运行:

  • product-tracking-implement-tracking — 为新增或变更的事件生成或更新代码(例如,“实现埋点”、“生成代码”、“更新埋点模块”)
  • product-tracking-audit-current-tracking — 可选择重新审计,以验证实现是否匹配(例如,“审计埋点”、“验证埋点”)

评论

支持 Markdown