数据与AI
从 PR/分支/文件/功能描述一键生成埋点追踪方案
当需要为某段代码变更或功能添加分析埋点时,自动读取代码、发现应追踪的事件并产出具体埋点计划。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
从 PR/分支/文件/功能描述一键生成埋特定
解决思路
- Step 0 捕获意图:判断用户想埋点的是 PR、分支、文件/目录还是功能描述。识别规则:有 URL 或 #number 则为 PR;像分支名(含 /、无扩展名、匹配 git 分支)则为分支;路径在磁盘上存在则为文件/目录;都不匹配且为描述性输入则为功能。若对话中已有 PR 链接、分支名或文件路径则直接复用,不再询问。若确实模糊,询问用户选择:1. 具体文件或目录 2. PR 3. 分支 4. 功能(描述后自动找相关代码)。
- PR 或分支:调用 diff-intake skill,传入 PR 或分支引用,产出 change_brief YAML 块,完整捕获该 YAML 供下一步使用。
- 文件/目录:跳过 diff-intake,直接读取文件自行构建 change_brief。1) 解析输入:若是目录,找出其中所有源文件(跳过测试、配置、lock 文件、生成代码);若是单文件则直接用。2) 读取每个文件并总结其作用,聚焦用户可见行为而非实现细节。3) 用与 diff-intake 相同的模式扫描已有埋点:track(、trackEvent(、logEvent(、amplitude.track(、ampli. 以及 analytics 相关 import。4) 构建 change_brief YAML,设置 analytics_scope: high(用户明确要求埋点这些文件),primary: feat,classification.types: [feat],并在 file_summary_map 中填入每个文件的摘要、层级和已有埋点。
- 功能描述:先搜索 git 提交历史找相关提交,使用 git log --all --grep="<patterns>",然后读取提交正文理解功能与相关文件;若结果良好则生成 change_brief YAML。再搜索代码库:用功能描述中的关键词(组件名、路由路径、函数名、领域术语)做 Grep,用 Glob 匹配可能的文件路径(如 **/checkout/**、**/onboarding/**),读取路由定义、导航配置或 index 文件找入口点。最后构建 change_brief YAML。
- Step 2:调用 discover-event-surfaces skill,传入上一步的 change_brief YAML,产出 event_candidates YAML 块。若候选为零,停止并告知用户该变更虽有用户可见影响但未识别出值得埋点的事件。完整捕获该 YAML 供下一步使用。
- Step 3:调用 instrument-events skill,传入上一步的 event_candidates YAML,产出 trackingPlan JSON,包含每个关键(priority 3)事件的确切文件位置、埋点代码和属性定义。
- 呈现结果:逐步讲解每个事件——追踪什么及为何重要;路由到哪些 Amplitude 项目(appId/appIds),当仓库有 .amplitude/instrumentation-agent.yaml 且事件跨多个项目时要特别指出;埋点调用放在哪里(文件 + 函数);发送哪些属性。然后询问用户是否要调整或进入实现。
- 错误处理:若任一步骤失败(如 PR 不存在、git 命令报错、无可分析文件),清晰暴露错误并停止,不要用不完整数据继续。
适用边界 · 注意事项
- 用户只想单独运行 diff-intake、discover-event-surfaces 或 instrument-events 其中某一步时,不应使用此编排流程
- 输入完全无法归类为 PR、分支、文件/目录或功能描述,且用户无法澄清时